现在的位置: 首页 > 综合 > 正文

c++迭代器

2013年10月05日 ⁄ 综合 ⁄ 共 726字 ⁄ 字号 评论关闭

转:http://zhanghu-hs.blog.sohu.com/129119232.html

vector<int>::const_itertor;   //容器是常量

const vector<int>::itertor; // 迭代器是常量

const_vector类型只能用于读取容器内元素,但不能改变其值。当我们对const_iterator类型解引用时,得到一个指向const对象的引用,该对象不能进行重写。使用const_iterator类型时可以得到一个迭代器,它自身的值可以改变,但不能用来改变其所指向的元素的值。可以对迭代器进行自增以及使用解引用操作符来读取值,但不能对该元素赋值:

const vector<int> nines(10,9);

// 不可改变nines中元素的值

const vector<int>::iterator cit2=nines.begin();  

/* cit2自身是const型的,它指向nines后便不能再指向其它vector,但cit2可以改变其所指向元素的值,而nines为const型迭代器,其元素的值是不可改变的,所以该赋值错误。*/

vector<int>::const_iterator it=nines.begin();

// nines元素的值是不可改变的,因此用const_iterator类型的vector指向其元素是合适的。

*it=10;

// 错误。it自身的值是不可改变的,这样也就保证了nines元素中的值不会改变

++it;

//正确。it可以改变其指向,其最大优点就是该指针的只读性,它保证了其所指向元素的不可修改性。

声明一个const迭代器时必须对其初始化,初始化后再不允许改变它的值(不能再指向其它元素)。

抱歉!评论已关闭.