名稱空間
變體
操作

C++ 命名要求: ReversibleContainer

來自 cppreference.com
 
 
C++ 命名要求
基本
型別屬性
全庫範圍




Container(容器)
ReversibleContainer(可逆容器)
容器元素
迭代器 (Iterator)
流 I/O
格式化器
(C++20)
隨機數
併發
(C++11)
Ranges
多維檢視
其他

 

一個 ReversibleContainer 是一個 Container,其迭代器滿足 LegacyBidirectionalIteratorLegacyRandomAccessIterator 的要求。這類迭代器允許 ReversibleContainer 進行反向迭代。

目錄

[編輯] 要求

如果一個型別滿足 Container,且其迭代器型別屬於雙向或隨機訪問 迭代器類別,並且給定以下型別和值,滿足下表中的語義和複雜度要求,則該型別滿足 ReversibleContainer 的要求

型別 定義
X 一個 ReversibleContainer 型別
T Xvalue_type
定義
a 型別 X 的值

[編輯] 型別

名稱 型別 要求
typename X::reverse_iterator std::reverse_iterator<X::iterator> 一個迭代器型別,其 值型別T
typename X::const_reverse_iterator  std::reverse_iterator<X::const_iterator>  一個常量迭代器型別,其 值型別T

[編輯] 表示式

下表中的 reverse_iteratorconst_reverse_iterator 型別分別表示 typename X::reverse_iteratortypename X::const_reverse_iterator

表示式 型別 語義  複雜度 
a.rbegin() reverse_iterator
對於常量 aconst_reverse_iterator
reverse_iterator(a.end()) 常量
a.rend() reverse_iterator
對於常量 aconst_reverse_iterator
reverse_iterator(a.begin()) 常量
a.crbegin() const_reverse_iterator const_cast<const X&>(a).rbegin() 常量
a.crend() const_reverse_iterator const_cast<const X&>(a).rend() 常量

[編輯] 庫型別

以下標準庫型別滿足 ReversibleContainer 要求

(C++11)
固定大小的原位連續陣列
(類模板) [編輯]
雙端佇列
(類模板) [編輯]
雙向連結串列
(類模板) [編輯]
可變大小的連續陣列
(類模板) [編輯]
可變大小、固定容量、原地連續陣列
(類模板) [編輯]
鍵值對集合,按鍵排序,鍵唯一
(類模板) [編輯]
鍵值對的集合,按鍵排序
(類模板) [編輯]
唯一鍵的集合,按鍵排序
(類模板) [編輯]
鍵的集合,按鍵排序
(類模板) [編輯]

[編輯] 示例

以下示例反向迭代一個 vector(它具有舊式隨機訪問迭代器)。

#include <iostream>
#include <vector>
 
int main()
{
    std::vector<int> v = {3, 1, 4, 1, 5, 9};
 
    for (std::vector<int>::const_reverse_iterator i{v.crbegin()}; i != v.crend(); ++i)
        std::cout << *i << ' ';
    std::cout << '\n';
}

輸出

9 5 1 4 1 3

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 2105 C++98 typename X::const_reverse_iterator
被要求為值型別為 const T 的迭代器型別
被要求為值型別為 T 的常量
迭代器型別