根据移动特性和施行操作,迭代器分为5类:
Input iterator:只读
Output iterator:只写
Forward iterator:在此迭代器所形成的区间上进行读写操作
Bidirectional iterator:forward iterator+双向移动
Random Access iterator:随机存储迭代器 前四种迭代器+随机存储(p+n,p-n,p1-p2,p[n],p1<p2)
关系如图所示:
直线和箭头不是继承关系,而是概念(concept)和强化(refinement)关系。
以advance()为例:
advance()有两个参数,一个参数为迭代器p,另一个为前进的距离n,对于不同版本的迭代器设计的