概述

迭代器作为STL中的三大组件之一,是容器和算法的粘合剂。迭代器提供了访问容器中元素的方法,每一种容器都提供了自己的迭代器,而这些迭代器向外界隐藏了容器的内部结构。算法使用迭代器访问容器中的元素,不需要关心容器的内部结构。

STL中的迭代器按照功能主要分为以下5种,分别为:

  • InputIterator:输入迭代器,支持对容器元素的逐个遍历和读取。

  • OutputIterator:输出迭代器,支持对容器元素的逐个遍历和写入。

  • ForwardIterator:前向迭代器,支持向前逐个遍历元素,可以对元素进行读取;

  • BidirectionalIterator:双向迭代器,支持向前向后逐个遍历元素,可以对元素进行读取。

  • RandomAccessIterator:随机访问迭代器,支持对元素的随机位置访问,可以对元素进行读取。

不同容器的迭代器,其功能有所不同。迭代器的功能强弱,决定了该容器是否支持STL中的特定算法。比如:排序算法需要通过RandomAccessIterator来访问容器中的元素,set、map等容器就不支持排序算法。下表列出了STL中常用容器使用的迭代器功能种类。