STL--const_iterator

本文探讨了C++中const_iterator的两种形式:常量迭代器和迭代器常量。它们分别限制了迭代器值(地址)的修改和地址中值的修改,以实现对容器元素的读取保护或写入保护。
摘要由CSDN通过智能技术生成

const_iterator的本质

const int* p; -----常量指针
int* const p; -----指针常量
const std::vector<int>::iterator iter=v.begin(); ---常量迭代器
std::vector<int>::const_iterator iter=v.begin(); ---迭代器常量

容器迭代器的实现本质上就是保存容器元素的地址,也就是迭代器对象保存的值是地址。

那么常量迭代器的值(也就是迭代器保存的地址)不可以改变,但是不影响地址中的值的改变,地址中的值依然是可以改变的。

迭代器常量用于实现对迭代器保存的地址中的值不可改变的效果。

但是迭代器变本身保存的值,也就是元素的地址是可以改变的。

两个cons都加上就是迭代器变量保存的地址不能改变,地址中的值也不能改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值