▲什么是迭代器?迭代器有什么作用?

▲什么是迭代器?迭代器有什么作用?

什么是迭代器?

先说说它是干嘛的吧!迭代器的作用是用来访问容器(用来保存元素的数据结构)中的元素,所以使用迭代器,我们就可以访问容器中里面的元素。没错!这和访问数组这个序列的指针一样,因为数组范围内的指针就是迭代器的一种。

指针和迭代器有什么区别呢?

1.指针针是C语言里面就有的东西,而迭代器是C++里面才有的

2.指针用起来灵活,效率高。迭代器功能更丰富一些

3.指针通常用来访问的是序列的元素,但不是所有的容器都会在连续的内存空间上保存数据。所以,对于这些容器我们不能单纯地使用指针作为迭代器,而是针对每一种容器,都会有专门配对的迭代器。

4.指针用起来灵活,效率高。迭代器功能更丰富一些,c++的stl里面很多算法都是基于迭代器的,一部分算法的参数可以传递指针作为迭代器使用。

迭代器怎么使用?

对于所有的迭代器,它们的使用方法和指针一样,比如自增(++),解引用(*)。除了数组以外,在大部分的容器中都会提供成员函数beget()(在类中创建,类是C++中对于C语言中的结构体的延伸),用来获取容器开始位置的迭代器,会提供成员函数end(),用来获取容器结束位置的迭代器。

如何理解begin()和end()这两个返回值为迭代器的函数?

begin()相当于数组中首元素地址,end()相当于末元素后一位置的地址(首元素地址+元素数量)

迭代器五大种类及功能解析

InputIterator(输入迭代器):只要求支持拷贝、自增和解引访问。OutputIterator(输出迭代器):只要求支持拷贝、自增和解引赋值。ForwardIterator(向前迭代器):同时满足 InputIterator 和 OutputIterator 的要求。BidirectionalIterator(双向迭代器):在 ForwardIterator 的基础上支持自减(即反向访问)。RandomAccessIterator(随机访问迭代器):在 BidirectionalIterator 的基础上支持加减运算和比较运算(即随机访问)

使用迭代器*样例展示

vect是一种数据结构—我们熟悉的数组(亦称列表)

用vect::iterator定义迭代器iter

(迭代器的类型就为container::iterator)(container是某个STL容器)

arr.begin()是返回值指向首元素的为迭代器的函数

更多有关迭代器的函数请看下一栏

常用四大返回值为迭代器的函数

1.begin()/cbegin()返回指向首元素的迭代器,其中 *begin = front。2.end()/cend()返回指向数组尾端占位符的迭代器,注意尾端占位符是没有元素的,不能进行解引用。3.rbegin()/crbegin()返回指向逆向数组的首元素的逆向迭代器,可以理解为正向容器的末元素。4.rend()/crend()返回指向逆向数组末元素后一位置的迭代器,对应容器首的前一个位置,没有元素。

使用返回值为迭代器的函数*样例展示

sort()和reverse()都是STL提供的算法函数

可以大大提高写代码的效率哦!

☆ 刚刚学习的迭代器,怕忘记所以来做的笔记,欢迎大家一起交流~

相关推荐

怀旧服泰坦护腿图纸怎么获得 世界BOSS掉率最高
365bet足球比

怀旧服泰坦护腿图纸怎么获得 世界BOSS掉率最高

📅 06-27 👁️ 8369
打篮球怎样练好左手呢
36365快速检测中心

打篮球怎样练好左手呢

📅 06-29 👁️ 1515
如何安装有线电视 如何安装有线电视接口
cf女生名字大全(共340个)
det365APP

cf女生名字大全(共340个)

📅 06-27 👁️ 3964
货币问答:1快币等于多少人民币
365bet足球比

货币问答:1快币等于多少人民币

📅 06-29 👁️ 3459
从0到1教你如何练成蜜桃臀?(女生篇)
365bet足球比

从0到1教你如何练成蜜桃臀?(女生篇)

📅 06-29 👁️ 7012