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

问题描述

| 我想求解标题中的方程并找到X。据我所知,与正向迭代器不同,输入或输出迭代器在其副本被推进后立即失效。对于满足输入迭代器概念和输出迭代器概念的T类型以满足正向迭代器概念,是否还有其他要求? 无论如何,您能否提供一个既是输入又是输出但不是正向的迭代器的真实示例?谢谢     

解决方法

        迭代器类别处理在迭代器上允许的操作。取消引用前向迭代器必须产生
T&
(C ++ 03),而取消引用输入迭代器必须只产生可转换为
T
的类型。例如,
vector<bool>::iterator
是输入/输出迭代器,但不是正向迭代器(因为取消引用它会返回可转换为
bool
的代理-因为您无法返回对位的引用)。     ,        并且根据此处的图表,可以默认构造正向迭代器,但不能构造输入或输出迭代器。