STL标准库中总共提供了
五类不同迭代器类型,每个迭代器类型都针对不同的处理需求提供了相应的功能供开发者根据不同的情况使用。下面分别简单介绍下五类迭代器基本情况。
第一类迭代器称为输入迭代器(Input Iterator)。该类迭代器主要用于从容器当中取数据,支持单向从容器首部位置向后递增遍历。该类迭代器相对较为灵活,可以通过变量递增方式实现指向的跨越访问,并且该类迭代器也支持相应的比较运算操作。
第二类迭代器称为输出迭代器(Output Iterator)。该类迭代器主要用于向容器中写入数据,同样也只能单次递增的从容器的首部向后遍历元素。
第三类迭代器称为正向迭代器(Forward Iterator)。该类迭代器结合了输入/输出两种迭代器功能,同时还可以记录该迭代器在容器中的位置信息,以供后续处理。
第四类迭代器称为双向迭代器(Bidirectional Iterator)。该类迭代器不仅仅拥有了输入输出迭代器的功能,同时还支持从容器尾部向首部反向遍历的操作,并且支持可以多次遍历容器的功能。
第五类称为随机访问迭代器(Random Access Iterator)。它可以根据需要,随机地访问容器中的元素,并且可以正向或者反向的任意递增间隔的跳转。
从上述介绍看来,五类迭代器从基本的输入输出开始,一直到随机访问迭代器,其提供的功能越来越强大。基本上所有的STL容器都支持上述五种不同类别的迭代器操作。根据实际应用的需要,用户来选择不同类别的迭代器。初学者可以将迭代器看作指针来访问具体的容器内容。实际上,STL迭代器就是针对访问容器的指针的封装。