Я знаю, что этот вопрос задавали много, и я прошел через большинство популярный ответ на стеке потока
У меня есть куча чисел в следующем формате:
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 ++?
Задача ещё не решена.
Других решений пока нет …