概念
迭代器 (Iterator) 概念描述可以用來標(biāo)識和遍歷一個容器元素的類型陨仅。
代碼
vector a = { 1,2,3,4,5 };
vector::iterator start = a.begin();
vector::iterator end = a.end();
vector::iterator it;
for (it = start; it != end; it++) {
cout << *it << endl;
}
輸出 1 2 3 4 5
如何理解
看起來 it 和指針的形式差不多
實際上,it 不只是迭代器指向的項的值铝侵,也是該項本身(即可以通過迭代器修改值)
for (it = start; it != end; it++) {
*it = 233;
cout << *it << endl;
}
輸出 233 233 233 233 233
const_iterator
const_iterator 的*it 不能出現(xiàn)在賦值語句的左邊
其他
在STL定義的容器中灼伤,string,vector與deque提供了隨機訪問迭代器咪鲜,list狐赡、set、multiset疟丙、map颖侄、multimap提供了雙向迭代器。