- 输入迭代器:
对一个序列的元素提供了顺序只读访问操作的迭代器应该支持++(前缀或后缀)、==、!=、以及一元*运算符。
还应该支持iter->member和(*iter).member。 - 输出迭代器:
支持++(前缀和后缀)、支持*it=value - 正向迭代器:
支持*it(对于读和写)、++it和it++(但不用支持–it和it–)、it==j和it!=j(it和j的类型相同)、it->member(作为(*it).member的一个替代名)。
例如库中的replace使用>了正向迭代器 - 双向迭代器:
满足正向迭代器的所有操作,且支持–(前缀和后缀)。
例如库中的reverse算法就使用了双向迭代器。 - 随机访问迭代器:
满足双向迭代器的所有操作,且支持算数运算能力。