STL中使用迭代器iterator,类似于指针。顺序型容器的begin()
即首元素的迭代器,end()
为末尾元素的后一位的迭代器。用*
作用于迭代器则得到迭代器指向的元素,这点也与指针类似。以下为C++中vector
容器的迭代器使用示例。
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> v;
v.push_back(3);
vector<int>::iterator it=v.begin();
cout<<*it<<endl;//打印it指向的元素
it++;//迭代器自增,则指向下一个元素
cout<<*it<<endl;//指向end(),默认为0
cout<<*v.end()<<endl;//迭代器自身无法打印,只能打印指向的元素
return 0;
}
程序执行结果如下:
3
0
0
另外,经常使用for(it=v.begin();it!=v.end();it++)
的方式遍历容器。