可逆容器(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 閱讀(1468)
評論(1) 編輯 收藏 引用 所屬分類:
外文翻譯