c++ - 可以在一个文件中定义两个 `istream_iterator` 吗?

标签 c++ stl istream-iterator

ifstream file1;
file1.open("in1.txt");
istream_iterator<string> iterator1(file1);
copy(istream_iterator<string>(file1), istream_iterator<string>(), back_inserter(lstr));

我们可以有两个输入流迭代器指向一个文件吗?正如在上面的情况下,迭代器正在前进(仅一次引用,因为它应该是)并且拷贝中缺少第一个元素(字符串)。有没有可行的办法?

最佳答案

可以,但是如果你前进一个,文件指针也会随之前进,因此会影响另一个的下一个前进。另外,迭代器在创建后就会前进一次,因此在需要时不要创建它。

关于c++ - 可以在一个文件中定义两个 `istream_iterator` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235165/

相关文章:

c++ - Priority_queue 和输入流迭代器

c++ - 取消引用的 InputIterator 的地址? istream_iterator 的案例

c++ - 字符串文字的 std::move - 哪个编译器是正确的?

c++ - 使用 g++ 链接时对函数的 undefined reference

c++ - 从 STL 列表中删除特定节点

c++ - std::function到C样式的函数指针

c++ - 是否有任何工具可以显示函数内的数据依赖性

C++ 运算符重载错误

c++ - 有没有办法将 std::vector<const T*> 转换为 std::vector<T*> 而无需额外分配?

c++ - 使用 istream_iterator 复制