5.3  迭代器类型详述

5.3 迭代器类型详述

前面已讲过,迭代器是一种“能够遍历某个容器(或序列)内的所有元素”的对象。迭代器通常是利用与一般指针一致的接口来完成自己的工作。迭代器奉行纯抽象概念,即“任何东西,只要其行为类似迭代器,那么它就是一种迭代器”。不同的迭代器具有不同的“能力”(行进和存取能力)。而某些算法需要特定的迭代器能力。在迭代器中,能力是很重要的概念。

各种迭代器的关系如图5-1所示:

978-7-111-51399-5-Chapter05-1.jpg

图5-1 各种迭代器的关系

一方面,不同的算法需要以不同的迭代器作为参数;另一方面,同一种算法对于不同的迭代器可能有不同效率的实现。基于迭代器类别,C++ STL提供了5个类,分别代表5个迭代器类别——输入型迭代器、输出型迭代器、前向型迭代器、双向型迭代器和随机访问型迭代器。