2 3 4 5" - есть какой-то элегантный метод извлечь числа и закинуть их в массив int?
Зависит от того, что ты понимаешь под элегантностью и какой на самом деле там формат
Задача в том, что нужно считать строку по типу "1 2 3 4 5 6", а потом запихнуть все эти числа в массив int. Писать самому парсер чисел лень, вот и ищу метод, как это можно сделать быстро используя библеотечные функции
Страуструп бы написал что-то вроде std::istringstream ss{"1 2 3 4 5"}; std::vector<int> ints; int n = 0; while (ss >> n) { ints.push_back(n); } Но по с разных точек зрения это так себе вариант Зануды бы сделали ещё std::copy(std::istream_iterator<int>{ss}, std::istream_iterator<int>{}, std::back_inserter(ints)); Совсем зануды бы участливо ренжи предложили
Вывод: я полный зануда
Первый вариант слишком старпёрский, второй норм, третий не везде будет работать
Чем норм-то? Тем, что символов больше в два раза?
Символы не аргумент
stringstream
"элегантно" и "лень" плохо сочетаются друг с другом, по опыту.
Обсуждают сегодня