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

时间:2011-06-25 12:40:02

标签: c++ stl iterator

我想解决标题中的等式并找到X.据我所知,输入或输出迭代器与前向迭代器不同,只要它的副本被提前就会失效。为满足输入迭代器概念和输出迭代器概念以满足前向迭代器概念的类型T是否还有其他要求?

在任何情况下,你能提供一个迭代器的真实例子,它既是输入又是输出但不是前向的?感谢

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:0)

根据图表here,可以默认构造前向迭代器,但输入或输出迭代器不能。