input
iterators output iterators
/
forward
iterators
|
bidirectional
iterators
|
random
access iterators
要注意,上面这图表并不是表明它们之间的继承关系:而只是描述了迭代器的种类和接口。处于图表下层的迭代器都是相对于处于图表上层迭代器的扩张集。例如:forward迭代器不但拥有input和output迭代器的所有功能,还拥有更多的功能。
下面是关于这些迭代器功能的简短说明:
Input 迭代器:允许向前递增迭代器而使其指向下一个元素(使用 ++ 操作符),并可以读取迭代器指向(使用 * 操作符)的数据。
Output迭代器:允许向前递增迭代器而使其指向下一个元素,并可以给迭代器指向的对象赋新值。
Forward迭代器:支持读、写操作;提供一个遍历方向。
Bidirectional迭代器:允许在两个遍历方向。
Random access迭代器:支持访问容器任意位置的算法操作。例如:
string::iterator it = s.begin();
char c = *(it+5); // skip five characters