【发布时间】:2014-05-09 12:14:33
【问题描述】:
我不明白为什么 for_each 的第二个参数是一个空迭代器。有人可以向我解释一下吗?
fstream("datfile.txt");
for_each(istream_iterator<string>(datfile), istream_iterator<string>(), rand_func);
【问题讨论】:
标签: c++ c++11 iostream istream-iterator
我不明白为什么 for_each 的第二个参数是一个空迭代器。有人可以向我解释一下吗?
fstream("datfile.txt");
for_each(istream_iterator<string>(datfile), istream_iterator<string>(), rand_func);
【问题讨论】:
标签: c++ c++11 iostream istream-iterator
默认构造的istream_iterator 用作指示流条件结束的标记。当从istream 读取结束时,for_each 的第一个迭代器输入将等于这个标记迭代器,从而终止for_each。
【讨论】:
这是一个特殊的“哨兵”值,其唯一目的是在与另一个已达到 EOF 的 istream_iterator() 进行比较时返回值 true。
【讨论】: