可逆容器(Reversible Container)
类目:容器描述可逆容器是一个有双向迭代器的前向容器。它可以向后向后迭代通过容器。
改善自Forward Container相关类型介绍了两个新的类型。此外,迭代器类型和常量迭代器类型必须满足比前向容器(
Forward Container)更严格的要求。迭代器类型和反向迭代器类型必须是双向迭代器(Bidirectional Iterators),而不仅仅是前向迭代器(
ForWard Iterators)。
反向迭代器类型(Reverse iterator type) X::reverse_iterator 一个反向迭代器适配器的基迭代器类型是容器的迭代器类型。递增反向迭代器(rever_iterator)类型对象向后移动通过容器:Reverse Iterator适配器映射了++操作符和--操作符。
常量反向迭代器类型(Const reverse iterator type) X::const_reverse_iterator 一个反向迭代器适配器的基迭代器是容器的常量迭代器类型。[1]
标记法X 反向容器模式类型
a,b 类型X对象
定义有效表达式除了前向容器(
Forward Container)中的表达式外,下面的表达式也必须有效
名称 表达式 类型要求 返回类型
范围起始Beginning of range a.rbegin() 如果a是可变的,那么是reverse_iterator,否则为const_reverse_iterator[1]
范围结束End of range a.rend() 如果a是可变的,那么是reverse_iterator,否则为const_reverse_iterator[1]
表达式语义一个表达式的语义只有在这种情况下定义,当它没有在前向容器(
Forward Container)中定义,或者有额外的信息。
名称 表达式 前提 语义 后置
逆向范围起始Beginning of range a.rbegin() 相当于X::reverse_iterator(a.end())。 a.rbegin()是提领或者是past-the-end。当a.size() == 0是,它为past-the-end。
逆向范围结束End of reverse range a.rend() 相当于X::reverse_iterator(a.begin())。 a.rend()是past-the-end。
复杂性保证rbegin()和rend()运行时复杂性是摊销时间为常数。
不变因素有效范围 [a.rbegin(), a.rend())是一个有效范围。
等待范围 a.begin()到a.end()之间的距离和a.rbegin()到a.rend()之间的距离是一样的。
模型vector
list
deque
注释[1]一个容器的迭代器类型和常量迭代器类型有可能是相同的类型:一个容器不需要提供可变的迭代器。因此反向迭代器类型和常量反向迭代器类型也可能是相同的。
参见
Iterator overview, Bidirectional Iterator, Sequence
posted on 2012-03-21 16:07
canaan 阅读(1452)
评论(1) 编辑 收藏 引用 所属分类:
外文翻译