我可以在两个istream_iterator之间进行赋值操作吗?

时间:2012-06-28 16:11:39

标签: c++

我可以在两个istream_iterator之间进行赋值操作吗?如果是,那么行为是什么,即迭代器是否指向文件中的相同位置,即我们是否会获得两个指向文件中同一行的指针?

如果是这样,我可以递增一个迭代器,读取一些行,然后将它分配回其他迭代器,然后再次从我们之前的同一位置开始读取行吗?

基本上我想编写一个模拟for循环的程序。但这应该在解析文件时发生。

2 个答案:

答案 0 :(得分:6)

istream_iterators是输入迭代器,而不是转发迭代器。这意味着它们是单遍迭代器,而不是多遍迭代器:没有办法返回序列,或者不止一次迭代序列。

答案 1 :(得分:1)

您可以分配istream_iterator但是 istream_iterator并不真正引用文件中的特定位置,只是指当前位置,无论可能是什么。因此,您正在考虑的内容将无法正常工作 - 您使用的任何迭代器都将继续从当前点读取,而不是返回到保存它时所引用的位置。

相关问题