【问题标题】:istream_iterator, black magic?istream_iterator,黑魔法?
【发布时间】: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


    【解决方案1】:

    默认构造的istream_iterator 用作指示流条件结束的标记。当从istream 读取结束时,for_each 的第一个迭代器输入将等于这个标记迭代器,从而终止for_each。

    【讨论】:

      【解决方案2】:

      这是一个特殊的“哨兵”值,其唯一目的是在与另一个已达到 EOF 的 istream_iterator() 进行比较时返回值 true。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-12
        • 1970-01-01
        • 2016-12-05
        • 2020-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多