SGI

可逆容器

类别:容器 组件类型:概念

描述

可逆容器是一个前向容器,其迭代器是双向迭代器。它允许向后遍历容器。

细化自

前向容器

关联类型

引入了两种新类型。此外,迭代器类型和常量迭代器类型必须满足比前向容器更严格的要求。迭代器和反向迭代器类型必须是双向迭代器,而不仅仅是前向迭代器
反向迭代器类型 X::reverse_iterator 一个反向迭代器适配器,其基础迭代器类型是容器的迭代器类型。递增类型为reverse_iterator的对象在容器中向后移动:反向迭代器适配器将operator++映射到operator--.
常量反向迭代器类型 X::const_reverse_iterator 一个反向迭代器适配器,其基础迭代器类型是容器的常量迭代器类型。[1]

符号

X 可逆容器模型的类型
a, b 类型为X

定义

有效表达式

除了前向容器中定义的表达式外,以下表达式必须有效。
名称 表达式 类型要求 返回类型
范围的开始 a.rbegin()   reverse_iterator如果a是可变的,const_reverse_iterator否则 [1]
范围的结束 a.rend()   reverse_iterator如果a是可变的,const_reverse_iterator否则 [1]

表达式语义

仅在前向容器中未定义或存在其他信息的情况下定义表达式的语义。
名称 表达式 前提条件 语义 后置条件
反向范围的开始 a.rbegin()   等价于X::reverse_iterator(a.end()). a.rbegin()是可解引用或超出末尾。当且仅当a.size() == 0.
反向范围的结束 a.rend()   等价于X::reverse_iterator(a.begin()). a.end()超出末尾。

复杂度保证

的运行时复杂度rbegin()rend()是摊销常数时间。

不变量

有效范围 [a.rbegin(), a.rend())是一个有效范围。
范围的等价性 a.begin()映射到a.end()a.rbegin()映射到a.rend().

模型

注释

[1] 容器的迭代器类型和常量迭代器类型可以是相同的类型:容器不需要提供可变迭代器。由此可见,反向迭代器类型和常量反向迭代器类型也可以是相同的。

另请参阅

迭代器概述双向迭代器序列
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息