迭代器(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操做返回的迭代器不指向任何元素,所以不能對它進行解引用或自增操做。