我不明白为什么第二个参数for_each是一个空的迭代器。有人可以向我解释一下吗?
fstream("datfile.txt");
for_each(istream_iterator<string>(datfile), istream_iterator<string>(), rand_func);
答案 0 :(得分:4)
这是一个特殊的“哨兵”值,其唯一目的是在与已达到EOF的另一个true
相比时返回值istream_iterator()
。
答案 1 :(得分:3)
默认构造的istream_iterator
用作表示流状况结束的标记。从istream
读取结束时,for_each
的第一个迭代器输入将等于此sentinel迭代器,从而终止for_each
。