Чтение чисел и строк из файла в переполнении стека

Я знаю, что этот вопрос задавали много, и я прошел через большинство популярный ответ на стеке потока

У меня есть куча чисел в следующем формате:

4 // number of testcases
1 2 3 4 5 6 // Each line contains numbers for that particular testcase
1 4 5 6 7 8 9 19
12 3 5
1 4 9

Первая строка — количество тестовых случаев. Каждая следующая строка содержит числа для этого конкретного теста.

Я хочу читать построчно, обрабатывать числа, выводить решение и только потом переходить к чтению на вторую строку.

В другом вопросе о переполнении стека предлагаемое решение приводит к значительному дублированию данных в векторе all_integers.

std::string line;
std::vector< std::vector<int> > all_integers;
while ( getline( std::cin, line ) ) {
std::istringstream is( line );
all_integers.push_back(
std::vector<int>( std::istream_iterator<int>(is),
std::istream_iterator<int>() ) );

for(auto it = all_integers.begin();it!=all_integers.end();it++) {
for(auto j = it->begin();j!=it->end();j++) {
cout << *j << " " ;
}
cout << endl;
}

Как правильно читать это из файла?

Контрольный вопрос:

В другом файле у меня есть вход в следующем формате:

5 2
abc
bcd
eee
zyc
abv

abc bcd
zyc anv

Первая строка содержит два числа: m, n.

m: количество слов в словаре
n: количество запросов.

Затем следует m слов, а последние n строк читают количество запросов к нему.

Как я могу прочитать это эффективно? Есть ли способ эффективно прочитать последние K строк файла в C ++?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]