迭代器(iterator):是一种检查容器内元素并遍历全部元素的数据类型。函数
每一个容器类都定义了本身的迭代器类型,如vector:spa
vector<int>::iterator iter;it
这条语句定义了一个名为iter的变量,它的数据类型是由vector<int>定义的iterator类型。容器
每种容器都定义了一对命名为begin和end的函数,用于返回迭代器。若是容器中有元素的话,由begin返回的迭代器指向第一个元素:变量
vector<int>::iterator iter = ivec.begin();遍历
上述语句把iter初始化为由名为begin的vector操做返回的值。假设vector不空,初始化后,iter即指该元素为ivec[0]。数据类型
由end操做返回的迭代器指向vector的“末端元素的下一个”。一般称为超出末端迭代器(off-the-end iterator),代表它指向了一个不存在的元素。若是vector为空,begin返回的迭代器和end返回的迭代器相同。迭代器
迭代器能够使用解引用操做符(*操做符)来访问迭代器所指向的元素。 解引用操做符返回迭代器当前所指向的元素:引用
*iter = 0;im
迭代器使用自增操做符向前移动迭代器指向容器中下一个元素:
++iter;
注:用于end操做返回的迭代器不指向任何元素,所以不能对它进行解引用或自增操做。