c++迭代器简介,const迭代器与const_iterator的区别

迭代器:

迭代器是一种检查容器内元素并遍历的数据类型。

有的容器支持下标操作,有的不支持。vector支持下标操作。标准库为每一种标准容器都定义了一种迭代器。

vector<int> ::iterator  text;

定义了一个名为text的变量。他的类型是vector<int>定义的iterator的类型。

解引用操作返回迭代器所指的当前的元素。*text=text[0];

每对容器都定义了一对begin和end函数,用于返回迭代器。由begin返回迭代器指向的第一个元素,end指向迭代器末端元素的下一个。对end指向的位置不能解引用和自增操作。

const _iterator:该类型只能用于读取迭代器指向的值,不能改变指向的值。

const 迭代器与const_iterator的区别:

const 迭代器是迭代器常量,该迭代器本身的值不能修改,即该迭代器在定义时  需要初始化,而且初始化之后,不能再指向其他元素。若需要指向固定元素的  迭代器,则可以使用const 迭代器。 

const_iterator 是一种迭代器类型,对这种类型的迭代器解引用会得到一个指  向const对象的引用,即通过这种迭代器访问到的对象是常量。该对象不能修  改,因此,const_iterator 类型只能用于读取容器内的元素,不能修改元素的  值。若只需遍历容器中的元素而无需修改它们,则可以使用const_iterator。

vector<int> a(10);

const vector<int>::iterator s = a.begin();

*s = 9;//const迭代器定义的迭代器常量可以改变指向的值,但是不能指向其他的元素。

vector<int>::const_iterator b = a.begin();

*b = 9;//error,const_iterator类型的变量指向的值不能被改变

++b;

注意:任何改变容器长度的操作都会是使当前的迭代器失效。例如,调用push_back之后,就不能在信任迭代器返回的值。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值