概念
迭代器(iterator)是用来访问(遍历)和检查 STL 容器中元素的对象。(个人理解:类似数组下标。)
可以通过迭代器指向想访问容器的元素地址,并通过 *it
(it 是迭代器)访问元素值(与指针类似)。
迭代器主要支持两个运算符:自增(++)和解引用(单目 * 运算符)。
其中,自增用来移动迭代器,解引用可以获取或修改它指向的元素。
使用(遍历容器)
STL 容器一般都有成员 begin 和 end。其中 begin 成员复制并返回指向第一个元素的迭代器,end 成员复制并返回指向最后一个元素的下一个元素迭代器,是一个不存在的元素位置。
由此,可用类似 for 循环的方法遍历 STL 容器。代码如下:
for(vector<int>::iterator it=v.begin();it<v.end();++it){ //定义迭代器 it
printf("%d\n",*it); //获取 it 指向的元素
}
使用 auto
改写(可省略繁琐的迭代器定义):
for(auto it = v.begin();it<v.end();++it){ //auto 自动识别变量类型
printf("%d\n",*it);
}