迭代器讲解

目录

迭代器:

迭代器分类:

前向迭代器:

双向迭代器:

随机访问迭代器:

迭代器定义方式:

正向迭代器:

常量正向迭代器:

反向迭代器:

常量反向迭代器:

反向迭代器和正向迭代器的区别:


迭代器:

首先,容器:容器本质上是用来存储大量数据的,也可以说是一串存储单元。

数据既然在容器中,那么就需要大量次数的对数据进行遍历,因此,迭代器诞生了。

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

迭代器分类:

常用的迭代器按功能强弱分为输入迭代器、输出迭代器、前向迭代器、双向迭代器、随机访问迭代器 5 种。

前向迭代器:

假设 p 是一个前向迭代器,则 p 支持 ++p,p++,*p 操作,还可以被复制或赋值,可以用 == 和 != 运算符进行比较。此外,两个正向迭代器可以互相赋值。

双向迭代器:

双向迭代器具有正向迭代器的全部功能,除此之外,假设 p 是一个双向迭代器,则还可以进行 --p 或者 p-- 操作(即一次向后移动一个位置)。

随机访问迭代器:

随机访问迭代器具有双向迭代器的全部功能。除此之外,假设 p 是一个随机访问迭代器,i 是一个整型变量或常量,则 p 还支持以下操作:

使得 p 往后移动 i 个元素。

p-=i:使得 p 往前移动 i 个元素。

p+i:返回 p 后面第 i 个元素的迭代器。

p-i:返回 p 前面第 i 个元素的迭代器。

p[i]:返回 p 后面第 i 个元素的引用。

迭代器定义方式:

正向迭代器:

容器类名::iterator 迭代器名

常量正向迭代器:

容器类名::const_iterator 迭代器名

反向迭代器:

容器类名::reverse_iterator 迭代器名

常量反向迭代器:

容器类名::const_reverse_iterator 迭代器名

反向迭代器和正向迭代器的区别:

对正向迭代器进行 ++ 操作时,迭代器会指向容器中的后一个元素。

对反向迭代器进行 ++ 操作时,迭代器会指向容器中的前一个元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值