c++ primer 迭代器

 对于标准容器中的元素,可以使用下标操作来处理,正如数组和字符串那样。

不过C++给每个标准容器都提供了迭代器,代替下标,因为有的容器不支持下标操作。所有的标准库容器都提供相同的迭代器,使用方法一致。

每个容器都有自己的迭代器,比如,定义:

vector<int> ivec;

需要使用迭代器,则:

vector<int>::iterator iter;

那么iter迭代器是由vector<int>数据类型定义的iterator。

 

迭代器常用的操作有iter.begin(),iter.end(),当他们相等时,容器是空的。

此外,使用解引用操作符来取出迭代器所指的元素内容,如*iter。

还有一种迭代器const_iterator,对其解引用时,得到一个指向const对象的引用,因而,const_iterator指向的对象不能修改,只能读取,通常在输出容器内对象值的时候使用。

但是我们不能把const_iterator和const  iterator混淆,后者是const的iterator,几乎没有意义,因为如果这样,那么迭代器不能修改,失去了迭代器本来的作用。

 

此外迭代器还支持一下算术运算,比如:

iter + n;

iter - n ; //向前或向后移动n位

iter1-iter2 ;//两个对象之间的距离;

但是迭代器不支持iter1+iter2;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值