Я читаю содержимое файла через cin, и мне нужно разобрать первую строку
Файл выглядит так:
1 2 3 4
1->3
2->5
...
Так что в основном мой первый шаг - это прочитатьпервая строка в векторе целых чисел.
Мой подход следующий:
std::string line;
std::vector<int> initial;
std::getline(std::cin, line);
std::istringstream iss(line);
int aux;
while (iss >> aux) {
initial.push_back(aux);
}
Это работает, и мой вектор initial
правильно содержит 4 целых числа первой строки.Однако я чувствую, что я делаю много преобразований, которые можно было бы сделать более прямым способом.
Я читаю первую строку в строку, а затем преобразовываю эту строку в поток.Попытка непосредственного чтения в поток, но компилятор жалуется.
std::istringstream iss();
std::getline(std::cin, iss);
Затем я перебираю строку для получения отдельных целочисленных значений и сохраняю их во вспомогательном int, прежде чем помещать в вектор.Я попытался напрямую поместить их в вектор, но опять-таки не удалось (по крайней мере, так, как я это делаю)
while (iss >> initial) {
}
Есть ли более простой способ получить одну строку из cin, состоящую из целых чисел, разделенных пробелом?прямо в вектор целых чисел?