const_iterator与iterator

const vector<int>::iterator it1 = v.begin();
vector<int>::iterator const it2 = v.begin();

const it2------>vector<int>::iterator            it2本身是const,即it2本身的值不能改变,即不能指向其他对象,但it2指向的对象的值可以改变

但在一般复合类型中 it1 通常是底层 const,ti2是 顶层 const。但在上面两条声明语句中 it1, it2 都是顶层 const,即

 it1, it2 本身的值不能改变(不能指向其它对象),而其所指对象的值是可以改变的。既然不能通过声明迭代器 it1 的形式得到底层 const,那么就需要有其它方法来达成咯。这就是 const_iterator。

vector<int>::const_iterator it3 = v.begin();

it3------>const_iterator            it3指向一个const,it3本身的值可以改变,即可以指向其他的对象,但它所指向的对象的值不能改变。

it3 会是一个底层 const,即其所指对象可以改变,但不能改变其所指对象的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值