const iterator是指iterator是参量,不可修改
const_iterator是iterator指向的元素不可修改
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> num(10,9);
//对比下面2个迭代器
const vector<int>::iterator iter1 = num.begin(); //常量迭代器,该迭代器不能改变
// ++iter1; //error
vector<int>::const_iterator iter2 = num.begin(); //该迭代器所指向的元素的值不能改变
++iter2; //true
// *iter2 = 7; //error
int i;
vector<int>::iterator iter;
for(i = 0,iter = num.begin(); iter != num.end(); ++iter,++i)
{
*iter = i;
}
//迭代器的算术运算
//iter + n
vector<int>::iterator iter3 = num.begin();
vector<int>::iterator iter4 = num.end();
vector<int>::iterator mid = num.begin() + num.size() / 2;
iter3 += 2;
cout << "*iter3 = " << *iter3 << endl;
cout << "iter4到iter3的距离:"<< iter4 - iter3 <<endl;
cout << "*mid = " << *mid << endl;
cout << "mid到begin的距离:"<< mid - num.begin() <<endl;
// cout << *( (num.begin() + num.end())/2 ); //error: 2个迭代器不能相加,能相减
return 0;
}