python反向迭代器_C++ STL 反向迭代器适配器(reverse_iterator)详解

我们知道,C++ 11 的 STL 标准库提供有 4 种迭代器适配器,本节开始将一一介绍它们的功能和用法,这里先讲解反向迭代器适配器。

反向迭代器适配器(reverse_iterator),可简称为反向迭代器或逆向迭代器,常用来对容器进行反向遍历,即从容器中存储的最后一个元素开始,一直遍历到第一个元素。

值得一提的是,反向迭代器底层可以选用双向迭代器或者随机访问迭代器作为其基础迭代器。不仅如此,通过对 ++(递增)和 --(递减)运算符进行重载,使得:

当反向迭代器执行 ++ 运算时,底层的基础迭代器实则在执行 -- 操作,意味着反向迭代器在反向遍历容器;

当反向迭代器执行 -- 运算时,底层的基础迭代器实则在执行 ++ 操作,意味着反向迭代器在正向遍历容器。

另外,实现反向迭代器的模板类定义在 头文件,并位于 std 命名空间中。因此,在使用反向迭代器时,需包含如下语句:

#include

using namespace std;

注意,第二行代码不是必需的,但如果不用,则程序中只要创建该迭代器时,必须手动注明 std 命名空间(强烈建议初学者使用)。

反向迭代器的模板类定义如下:

template

class reverse_iterator;

注意,Iterator 模板参数指的是模板类中所用的基础迭代器的类型,只能选择双向迭代器或者随机访问迭代器。

这意味着,如果想使用反向迭代器实现逆序遍历容器

你可能感兴趣的:(python反向迭代器)