迭代器
迭代器是一种对象,用于对STL容器的元素进行迭代处理。
它指向容器内部的特定位置,并提供以下基本运算符:
运算符 | 作用 |
---|---|
++ | 让迭代器指向至下一元素 |
==、!= | 判断两个迭代器是否指向同一位置并返回结果 |
= | 将右侧的值带入左侧迭代器所引用元素的位置 |
* | 返回该位置的元素 |
迭代器的优势在于,对任何种类的容器都可以用同一种方法(语法)顺次访问其元素。
此外,在处理数组元素时,它还可以当做C/C++的指针来用,也就是说,可以把迭代器看成通过通用接口(函数等的使用方法)对容器进行迭代处理的指针。
不过,即便接口相同,其实现和行为也会因不同的容器而有所不同。
为使用迭代器,容器提供了一些同名的成员函数:
成员函数 | 功能 |
---|---|
begin() | 返回指向容器开头的迭代器 |
end() | 返回指向容器末尾的迭代器,这里的末尾指最后一个元素的下一个位置 |
#include <iostream>
#include <vector>
using namespace std;
void print(vector< int > v)
{
vector < int >::iterator it;
for (it=v.begin();it!=v.end();it++)
cout<<*it;
cout<<endl;
}
int main()
{
int N=4;
vector < int >v;
for (int i = 0; i < N; i++) {
int x;
cin>>x;
v.push_back(x);
}
print(v);
vector < int >::iterator it = v.begin();
*it = 3;
it++;
(*it)++;
print(v);
return 0;
}
输入:
2 0 1 4
输出:
2014
3114