概念
迭代器 (Iterator) 概念描述可以用来标识和遍历一个容器元素的类型。
代码
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 不能出现在赋值语句的左边
其他
在STL定义的容器中,string,vector与deque提供了随机访问迭代器,list、set、multiset、map、multimap提供了双向迭代器。