在使用const vector<int>::iterator和vector<int>::const_iterator以及vector<int>::iterator的时,对他们的区别进行了如下的总结。
1. const vector<int>::iterator的使用
vector<int>::iterator s(5, 6);
const vector<int> :: iterator iter = s.begin();
如果程序写成s++或者++s,程序就会提示错误。因为s是一个常量。但是如果执行iter=8,程序时执行成功的,虽然他的值不能够改变,但是iter指向的元素是可以改变的。
2. vector<int>::const_iterator的使用
这个写法正好和写法1的使用功能相反。这种情况下,iter++是可以改变的,可以执行成功,但是iter=8,就会执行失败。那是因为迭代器是可以进行改变的,但是其指向的元素是不允许改变的。
3. vector<int>::iterator的使用
这个就是迭代器的正常使用,既可以改变迭代器的值,又可以改变指向迭代器的值。