迭代器(iterator)是一种检查容器内元素并遍历元素的数据类型。每种容器都定义了自己的迭代器,如(vector)。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vt(10.4);
vector<int>::iterator iter = vt.begin();
//begin()操作返回一个迭代器,指向第一个元素数据
//迭代器实际上是一个指针
*iter = 5;
iter ++;
*iter = 6;
for(vector<int>::iterator x = vt.begin();x != vt.end();x ++)
{
//end()是指向最后一个元素的下一个元素
cout << *x << endl;
}
return 0;
}
const_iterator只能读取容器中的元素,而不能修改。
vector<int>::const_iterator iter = vt.begin();
*iter = 5;
iter ++;
*iter = 6;
如果改为这样就错了,因为咱们需要修改iter的值。
for(vector<int>::const_iterator x = vt.begin();x != vt.end();x ++)
{
cout << *x << endl;
}
一般的,我们习惯这样写,因为这时候程序只读不修改。
虽然看似上面写的复杂,不如如下简单:
for(vector<int>::size_type x = 0;x != vt.size();x ++)
{
cout << vt[x] << endl;
}
但是,不是每个容器都能这样写,而迭代器,每个容器都有,所以,迭代器是非常重要的。