1. 每一种容器都有自己的迭代器
2. 所有的迭代器接口都是一样的
3. 在整个标准器中,经常使用形参为一对迭代器的构造函数
4. 常用的迭代器操作
*iter(迭代器实际上是一种指针) ++iter --iter iter1==iter2 iter1!=iter2
5. vector和deque容器的迭代器的额外操作(这两种容器实际是数组)
iter+n iter-n > >= < <=
6. 迭代器的范围(//一对迭代器)
begin/end first/last
7. 使迭代器失效的容器操作
在对容器操作时可能
#include<iostream>
#include<vector>
#include<deque>
#include<list>//不仅限于这三种,对所有的容器都适用
using namespace std;
int main()
{
vector<int> a;
deque<int> b;
list<int> c;
a.push_back(1);
a.push_back(2);
a.push_back(3);
a.push_back(4);
a.push_back(5);
vector<int>::iterator iter1=a.begin();//begin指向的是第一个
vector<int>::iterator iter1=a.end();//end指向的是最后一个的下一个,
cout<<*iter1<<endl;//1
iter1++;
cout<<*iter1<<endl;//2
iter1--;//1
cout<<endl;
vector<int>::iterator first=a.begin();
vector<int>::iterator last=a.begin();
while(first!=last){//因为指向的是最后一个的下一个,所以这样写很舒服
cout<<*first<<endl;
first++
}
vector<int>::iterator x=a.begin();
vector<int>::iterator m=x+a.size()/2;//只有vector和deque可以用这种方法
cout<<"中间"<<*m<<endl;//注意是*m
return 0;
}