我知道这个问题已经被问了很多,而且我已经经历了最多popular answer的stackoverflow。
我有以下格式的一堆数字:
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
第一行是测试用例的数量。其后的每一行都包含该特定测试用例的数字。
我想逐行阅读,处理数字,输出解决方案,然后转到读取第二行。
在另一个stackoverflow问题中,建议的解决方案导致向量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行读取要对其进行的查询的数量。
如何有效地阅读此内容?有没有办法在C ++中有效地读取文件的最后K行?