迭代器

Posted Xuuxxi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迭代器相关的知识,希望对你有一定的参考价值。

迭代器的含义

引自

代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。

加不加 const_ 取决于容器是不是常亮容器

迭代器按照定义方式分成以下四种。

1) 正向迭代器,定义方法如下:
容器类名::iterator  迭代器名;


2) 常量正向迭代器,定义方法如下:
容器类名::const_iterator  迭代器名;


3) 反向迭代器,定义方法如下:
容器类名::reverse_iterator  迭代器名;


4) 常量反向迭代器,定义方法如下:
容器类名::const_reverse_iterator  迭代器名;

正、反迭代器的区别

引自

可以用 base() 将反向迭代器转换成正向迭代器

可以通过reverse_iterator::base()将反向迭代器转换为普通迭代器使用,从逆序得到普通次序。
有些容器的成员函数只接受iterator类型的参数,所以如果你想要在ri所指的位置插入一个新元素,你不能直接这么做,因为vector的insert函数不接受reverse_iterator。如果你想要删除ri 所指位置上的元素也会有同样的问题。erase成员函数会拒绝reverse_iterator,坚持要求iterator(这个可以去试一试)。为了完成删除和一些形式的插入操作,你必须先通过base函数将reverse_iterator转换成iterator,然后用iterator来完成工作。
迭代器都可以进行++操作。反向迭代器和正向迭代器的区别在于:

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

以上是关于迭代器的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段6——CSS选择器

行历史查看器 - Git

持久片段和查看器

损坏的顶点和片段着色器

python使用上下文对代码片段进行计时,非装饰器

设计模式迭代器模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )