1、迭代器是一种检查容器内元素并遍历元素的数据类型。
2、所有标准类容器都定义了相应的迭代器类型,只有少量的容器支持下标操作。
如vector:
vector<int>::iterator iter;
每种容器都定义了一对命名为begin和end的函数,用于返回迭代器。如果容器中有元素的话,由begin返回的迭代器指向第一个元素:
vector<int>::iterator iter = ivec.begin();
由end操作返回的迭代器指向vector的“末端元素的下一个”。
3、迭代器类型可使用解引用操作符(*操作符)来访问迭代器所指向的元素:
*iter = 0;
迭代器使用自增操作符向前移动迭代器指向容器中下一个元素。
4、const_iterator类型,该类型只能用于读取容器内元素,但不能改变其值。对const_iterator类型解引用时,则可以得到一个指向const对象的引用,如同任何常量一样,该对象不能进行重写。
vector<int>::const_iterator iter = ivec.begin();
5、const的iterator对象,声明一个const迭代器时,必须初始化迭代器,一旦被初始化后,就不能改变它的值。
const vector<int>::iterator cit = ivec.begin();
6、迭代器算术操作:
iter + n
iter - n
iter1 - iter2