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;
}