http://wenku.baidu.com/view/185cb4bd5ef7ba0d4b733b24.html?from=search
list双向链表,不支持随机操作,因此不提供下标操作符
迭代器之间的层级关系:
| |
|_________________________|
|
|
|
每层迭代器包含上层的使用功效。
随机访问迭代器是可以随机访问容器中的元素的双向迭代器。这种迭代器在Vector, Dequeue, string, 和数组类型容器上使用。在双向迭代器上定义的操作也使用于随机访问迭代器。
操作:
- rAccessIterator[n] 下标访问
- rAccessIterator += n 向前移动n个元素
- rAccessIterator -= n 向后移动n个元素
- rAccessIterator + n 后面n个元素的迭代器
- n + rAccessIterator 后面n个元素的迭代器
- rAccessIterator - n 前面n个元素的迭代器
- rAccessIt1 - rAccessIt2 返回rAccessIt1 和 rAccessIt2之间的元素个数
- rAccessIt1 < rAccessIt2 rAccessIt1 在 rAccessIt2 之前
- rAccessIt1 <= rAccessIt2 rAccessIt1 在 rAccessIt2 之前,或相同
- rAccessIt1 > rAccessIt2 rAccessIt1 在 rAccessIt2 之后
- rAccessIt1 >= rAccessIt2 rAccessIt1 在 rAccessIt2 之后,或相同
双向迭代器
作用:既可以向后访问元素,又可以向前访问元素。
操作:
- --biDirectionIterator 前置减量
- biDirectionIterator-- 后置减量
注:双向迭代器可以在list, set, multiset, map, multimap 等类型的容器上使用。
前向迭代器结合了所有输入迭代器的功能和几乎所有输出迭代器的功能。
操作:
- *forwardIterator 解引用
- forwardIterator->member 成员访问
- ++forwardIterator 前置增量
- forwardIterator++ 后置增量
- forwardIt1 == forwardIt2 判断是否相等
- forwardIt1 != forwardIt2 判断是否不相等
- forwardIt1 = forwardItr2 赋值
输出迭代器
作用:用于写操作。向输出流中写入数据。
操作:
- *outputIterator = value 将value 写到outputIterator的指定位置上
- ++outputIterator 前置增量
- outputIterator++ 后置增量
注:输出迭代器不能在某个范围上使用两次。因此,如果在同一个位置上写两次数据不能保证新值一定代替旧值
输入迭代器
作用:从输入流中迭代读入数据
操作:
- *inputIterator 解引用
- inputIterator->number 访问成员
- ++inputIterator 前置增量
- inputIterator ++ 后置增量
- inputIt1 == inputIt2 判断是否相等
- inputIt1 != inputIt2 判断是否不相等