C++ 迭代器

C/C++总述:Study C/C++-CSDN博客 


要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。

  1. 正向迭代器(读写)
    容器类名::iterator  迭代器名;
  2. 常量正向迭代器(只读)
    容器类名::const_iterator  迭代器名;
  3. 反向迭代器(反向读写)
    容器类名::reverse_iterator  迭代器名;
  4. 常量反向迭代器(反向只读)
    容器类名::const_reverse_iterator  迭代器名; 

不同容器迭代器功能

容器迭代器功能
vector随机访问
deque随机访问
list双向
set/multiset

双向

map/multimap双向
stack不支持迭代器
queue
priority_queue

迭代器支持的操作

迭代器的辅助函数

辅助函数功能
advance(it, n)使迭代器 it 向前或向后移动 n 个元素。(取决于n的±)
distance(it1, it2)计算两个迭代器之间的距离,即迭代器 it1 经过多少次 + + 操作后和迭代器 it2 相等。如果调用时 p 已经指向 q 的后面,则这个函数会陷入死循环。
iter_swap(it1, it2)用于交换两个迭代器 it1、it2 指向的值。

迭代器范围

一个迭代器范围(iterator range)由一对迭代器表示,两个迭代器分别指向同一个容器中的元素或者是尾元素之后的位置(one past the last element)。这两个迭代器通常被称为begin和end。

这种元素范围被称为左闭合区间(left-inclusive interval),其标准数学描述为[begin, end)。

表示范围自begin开始,于end之前结束。迭代器begin和end必须指向相同的容器。end可以与begin指向相同的位置,但不能指向begin之前的位置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

禊月初三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值