недавно начал учить с++, до этого изучал python, столкнулся с таким вопросом. Как правильно в c++ считать строку, состоящую из целых чисел, количество которых мы не можем знать? в python,for example, было бы так:
a = [int(i) for i in input().split()]
как такую операцию записать на с++?
Сначала считываем строку целиком через getline, а потом достаем из нее числа с помощью istringstream.
Вот так:
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main()
{
std::string str;
std::getline(std::cin, str);
std::istringstream stream(str);
std::vector<int> vec;
int x;
while (stream >> x)
vec.push_back(x);
if (!stream.eof())
{
std::cout << "Строка имеет неправильный формат.\n";
return 1;
}
for (int x : vec)
std::cout << x << ' ';
std::cout << '\n';
}
Если вам нравятся понты веяния modern C++™, то цикл while можно заменить на std::copy(std::istream_iterator<int>(stream), std::istream_iterator<int>(), std::back_inserter(vec));.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости