c++ | 五种 STL 迭代器

一、迭代器是什么?

迭代器是一种抽象的设计理念,通过迭代器可以在不了解容器内部原理的情况下遍历容器。除此之外,STL 中迭代器一个最重要的作用就是作为容器与 STL 算法的粘结剂,只要容器提供迭代器的接口,同一套算法代码可以利用在完全不同的容器中,这是抽象思想的经典应用。

简单来讲,迭代器和 C++ 的指针非常类似,它可以是需要的任意类型,通过迭代器可以指向容器中的某个元素,如果需要,还可以对该元素进行读 / 写操作。

二、迭代器类别

常用的迭代器分为5个类别

  • Input itertor (输入迭代器) 只读;只支持自增运算
  • Output itertor(输出迭代器)只写;只支持自增运算
  • Forward itertor(前向迭代器)读写;只支持自增运算
  • Bidirectional itertor(双向迭代器)读写;支持自增和自减
  • Random access itertor(随机访问迭代器)读写;支持完整迭代器算数运算
输入迭代器
  • 输入迭代器可用于读取容器中的元素,但是不保证能支持容器的写入操作。输入迭代器必须至少提供下列支持。

  • 相等和不等操作符(==,!=),比较两个迭代器。

  • 前置和后置的自增运算(++),使迭代器向前递进指向下一个元素。

  • 用于读取元素的解引用操作符(*),此操作符只能出现在赋值运算的右操作数上。

  • 箭头操作符(->),这是 (*it).member 的同义语,也就是说,对迭代器进行解引用来获取其所关联的对象的成员。

  • 输入迭代器只能顺序使用;一旦输入迭代器自增了,就无法再用它检查之前的元素。要求在这个层次上提供支持的泛型算法包括 find 和 accumulate。标准库 istream_iterator 类型输入迭代器。

输出运算符
  • 输出迭代器可视为与输入迭代器功能互补的迭代器; 输出迭代器可用于向容器写入元素,但是不保证能支持读取容器内容。输出迭代器要求:前置和后置的自增运算(++),使迭代器向前递进指向下一个元素。

  • 解引用操作符(*)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值