C++ Primer-----------------迭代器Iterator

所有标准库容器都可以使用迭代器,但是只有少数几种才支持下标运算符,所以对于容器,尽量不使用下标运算符
有迭代器的容器都拥有返回一个迭代器的成员,比如beginendbegin成员会返回一个迭代器,指向第一个元素。end成员返回一个迭代器,指向尾元素的下一个位置,并无实际意义,如果容器为空,则beginend返回同一个迭代器。都是尾迭代器。
迭代器运算符

  1. *iter 返回迭代器iter所指元素的引用
  2. iter->mem 等价于(*iter).mem //引用名为mem的成员
  3. ++iter 令iter指向容器的下一个元素
  4. –iter 令iter指向容器的上一个元素
  5. iter1==iter2 判断是否迭代器相同
  6. iter1!=iter2 判断是否不同
    注意:不能end返回的迭代器进行递增或解引用操作
    迭代器和泛型编程
    为何for循环不用<,而用!=进行判断,因为大多标准库容器的迭代器没有定义<运算符,而所有的标准库容器都定义了==!=

迭代器类型:

**iterator**和**const_iterator**
使用环境:如果vector对象或string对象是一个常量,只能使用const_iterator,不是常量则都可以。
若对象是常量,则beginend返回const_iterator
注意:C++11引入两个新函数,反别为cbegincend,它们返回的迭代器类型都是const_iterator,不管该对象是否为常量。
解引用(*iter)可获得迭代器所指向的对象,若该对象是类,则可能访问它的成员。

(*it).empty();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值