迭代器比较 const_iterator

来源:互联网 发布:淘宝收二手手机 编辑:程序博客网 时间:2024/06/08 14:26

用==或!=操作符来比较两个迭代器,如果两个迭代器对象指向同一个元素,则他们相等,否则不等。

for(vector<int>::iterator  iter = ivec.begin();  iter != ivec.end(); ++iter)

*iter =0;

for循环首先定义了iter,并将它初始化为指向ivec的第一个元素,最后,iter指向ivec中的最后一个元素,处理完最后一次元素后,iter再加1,与end操作的返回值相等,终止。

for循环体内的语句用解引用操作符来访问当前元素的值,和下标操作符一样,解引用操作符的返回是一个左值,因此可以对它进行赋值来改变它的值。


前面程序用vector::iterator改变vector中的元素值,对普通iterator类型解引用,得到某个元素的非const引用;每种容器类型还定义了一种名为const_iterator类型,给类型只能用于读取容器内的元素,但不能该变其值,得到一个指向const对象的引用,如同任何常量一样,该对象不能进行重写。

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

声明一个const迭代器时,必须初始化迭代器,一旦初始化后,就不能改变它的值。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁半宝宝吸收不好怎么办 婴儿看见脏东西怎么办 母乳变质吃了怎么办 六个月婴儿积食怎么办 儿童吸收功能差怎么办 小孩吸收不好长不胖怎么办 宝贝喝水都吐怎么办 小孩子便秘大便硬结怎么办 一岁半宝宝不爱吃饭怎么办 小孩生病不吃饭怎么办 宝宝吃药不肯咽怎么办 宝宝自己不吃饭怎么办 宝宝突然不想吃饭怎么办 孩子死活不吃药怎么办 小孩死活不吃药怎么办 婴儿不吃药怎么办啊 1周岁宝宝厌食怎么办 宝宝吃药会吐怎么办 宝宝上火拉不出大便怎么办 40天宝宝上火怎么办 宝宝8个月结火了怎么办 婴儿喝牛奶上火怎么办 儿童喝牛奶上火怎么办 三岁宝宝不喝奶怎么办 孩子喝牛奶过敏怎么办 小孩哭晕过去怎么办 宝宝断不了奶怎么办 小孩喝牛奶过敏怎么办 宝宝不爱喝牛奶怎么办? 孕妇喝牛奶恶心怎么办 孕妇喝奶粉上火怎么办 宝宝断奶一直哭怎么办 孕妇喝不了牛奶怎么办 断奶时孩子哭闹怎么办 宝宝断奶夜里哭怎么办 小孩断奶晚上哭怎么办 断奶小孩一直哭怎么办 孕妇喝不下鸡蛋怎么办 断奶涨奶怎么办能挤吗 宝宝不吃的奶粉怎么办 蒸笼不圆漏气怎么办