c++ - 输入迭代器 + 输出迭代器 + X = 前向迭代器

标签 c++ stl iterator

我想解标题中的方程并找到 X。据我了解,输入或输出迭代器与前向迭代器不同,一旦它的拷贝被推进就会失效。为了使同时满足输入迭代器概念和输出迭代器概念的类型 T 满足前向迭代器概念,是否有任何额外要求?

无论如何,你能提供一个既是输入又是输出但不是前向的迭代器的真实示例吗?谢谢

最佳答案

迭代器类别处理迭代器上允许的操作。取消引用前向迭代器必须产生 T& (C++03) 在取消引用输入迭代器时必须只产生可转换为 T 的类型.例如,vector<bool>::iterator是一个输入/输出迭代器,但不是前向迭代器(因为取消引用它会返回一个可转换为 bool 的代理——因为您不能返回对位的引用)。

关于c++ - 输入迭代器 + 输出迭代器 + X = 前向迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6477774/

相关文章:

c++ - 你如何打印出文件的二进制表示?

c++ - 无法弄清楚为什么我的 str2Int 函数返回 0

c++ - 如何使用静态STL列表的迭代器?

c++ - 使用 auto 推导的 lambda 成员函数模板

java - 在 Java 的 foreach 循环中调用 remove

c++ - 不使用数组表示法分配二维数组

c++ - 从数据文件中选择特定行

c++ - VS 2012/VC11 中的对齐和 STL

c++ - 为什么 `std::initializer_list` 不提供下标运算符?

java - 查找多个键是否映射到相同的值