什么是迭代器:
迭代器是STL中的一个重要概念,它类似于C中的指针,但比指针更强大。指针可以通过++运算符对内存连续的一个数组进行遍历;而迭代器重载了*、->、++、==、!=、=运算符(对于不同的数据容器,分别进行了不同的重载,我们只需要从外部了解怎么用就好),在指针的基础上也可以对内存不连续的一个容器进行遍历。
迭代器怎么用:
由于各种容器中都有自己的迭代器,所以定义它的时候就需要用到各自的名称空间,比如说如果想定义一个vector<int>类型的迭代器,就可以这样定义:vector<int>::iterator iter;
用迭代器遍历容器时需要找到容器的开始和结束,分别用begin()和end()来获取。
需要注意的是:迭代器指向的是容器中的对象,如果要打印它所在容器位置的数据,用*就好,不要用数组下标来获取。
注意:end()返回最后一个元素的下一位置的迭代器。
代码示例:
#include <vector>
vector<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
for (vector<int>::iterator iter=a.begin(); iter!=a.end(); iter++){
cout<<*iter<<" ";
}