在 STL 中,迭代器(Iterator)用来访问和检查 STL 容器中元素的对象,它的行为模式和指针类似,但是它封装了一些有效性检查,并且提供了统一的访问格式。
迭代器的设计思维是STL的关键所在,STL的中心思想在于将容器(container)和算法(algorithms)分开,彼此独立设计,最后再一贴胶着剂将他们撮合在一起。


1、基本使用

使用类似于指针,大部分的迭代器都支持以下两个运算符:

  1. 自增运算符:++
  2. 解引用运算符:*

其中,自增运算符++用来移动迭代器,解引用可以获取或修改它所指向的元素

2、迭代器的分类

迭代器总共又五种,分别是:输入迭代器,输出迭代器,正向迭代器,双向迭代器和随机访问迭代器。具体区别见下表:

迭代器 描述 支持的运算符 读写
输入迭代器 提供对数据的只读访问 ++、*(右值)、=、==、!=、-> 只读
输出迭代器 提供对数据的只写访问 ++、*(左值)、= 只写
正向迭代器 提供读写操作,并能向前推进迭代器 ++、*、=、==、!=、-> 读写
双向迭代器 提供读写操作,并能向前和向后操作 ++、*、=、==、!=、->、— 读写
随机访问迭代器 提供读写操作,并能以跳跃的方式访问容器的任意数据,是功能最强的迭代器 ++、*、=、==、!=、->、—、+=、-=、+、-、[]、<、<=、>、>= 读写