reverse_iterator 类

此模板类是迭代器适配器,描述在行为上与随机访问迭代器或双向迭代器类似(只不过方向相反)的反向迭代器对象。 它允许向后遍历范围。

template <class RandomIterator>
class reverse_iterator

参数

  • RandomIterator
    一种类型,此类型表示要进行适配化以反向操作的迭代器。

备注

现有标准模板库容器还定义 reverse_iteratorconst_reverse_iterator 类型,并拥有返回反向迭代器的成员函数 rbeginrend。 这些迭代器具有覆盖语义。 reverse_iterator 适配器在提供插入语义时补充此功能,还可与流一起使用。

需要双向迭代器的 reverse_iterator 不能调用 operator+=operator+operator-=operator-operator[] 中的任何成员函数,这些成员函数只能与随机访问迭代器一起使用。

如果迭代器范围为 [_First, _Last),其中左侧的方括号指示包含 _First,右侧的括号指示包含到 _Left 的元素,但不包含 _Left 本身。 相同元素包含在反向序列 [rev – _First, rev – _Left) 中,这样,如果 _Left 是序列中的超出末尾元素,则反向序列中的第一个元素 rev – _First 指向 *(_Left – 1 )。 将所有反向迭代器与其基础迭代器关联的标识是:

&*(reverse_iterator ( i ) ) == &*( i – 1 )。

在实际操作中,这意味着在反向序列中,reverse_iterator 将引用迭代器在原有序列中引用的元素之外(右侧)一个位置的元素。 因此,如果迭代器在序列 (2, 4, 6, 8) 中发现元素 6,则 reverse_iterator 将在反向序列 (8, 6, 4, 2) 中发现元素 4。

构造函数

reverse_iterator

构造默认 reverse_iterator 或从基础迭代器构造 reverse_iterator

Typedef

difference_type

一种类型,此类型提供引用同一容器中的元素的两个 reverse_iterator 之间的差异。

iterator_type

一种类型,此类型为 reverse_iterator 提供基础迭代器。

pointer

一种类型,此类型提供指向 reverse_iterator 所发现元素的指针。

reference

一种类型,此类型提供对 reverse_iterator 所发现元素的引用。

成员函数

base

将基础迭代器从其 reverse_iterator 恢复。

运算符

operator*

返回 reverse_iterator 发现的元素。

operator+

将偏移量添加到迭代器,并返回在新偏移位置处发现插入元素的新 reverse_iterator

operator++

reverse_iterator 递增到下一元素。

operator+=

reverse_iterator 添加指定偏移量。

operator-

reverse_iterator 减去偏移量,并返回在偏移位置处发现元素的 reverse_iterator

operator--

reverse_iterator 递减到前一元素。

operator-=

reverse_iterator 减去指定偏移量。

operator->

返回指向 reverse_iterator 发现的元素的指针。

operator[]

返回对于从 reverse_iterator 发现的元素偏移指定个位置的元素的引用。

要求

标头:<iterator>

命名空间: std

请参见

参考

<iterator>

C++ 标准库中的线程安全

标准模板库