2011-06-25 188 views
2

我想解决标题中的方程式并找到X.据我所知,输入或输出迭代器与前向迭代器不同,只要副本它是先进的。对于满足输入迭代器概念和输出迭代器概念以满足前向迭代器概念的类型T,是否还有其他要求?输入迭代器+输出迭代器+ X =前向迭代器

在任何情况下,你是否可以提供一个真实世界的迭代器示例,它既是输入又是输出,但不是前向的?谢谢

回答

7

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

+1

正是我在问什么。非常感谢! –

0

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