名前付き要件:AssociativeContainer
提供: cppreference.com
AssociativeContainer はキーを基にオブジェクトの高速な検索を提供する順序付きの Container です。
[編集]要件
凡例 | |
X | コンテナの型 |
a | X 型の値 |
a2 | X と互換性のあるノードハンドルを持つ Y 型の値 |
b | X 型の値 (const かもしれない) |
u | 適当な変数の名前 |
a_uniq | X が一意なキーをサポートするときの X 型の値 |
a_eq | X が複数のキーをサポートするときの X 型の値 |
a_tran | 型 X::key_compare::is_transparent が存在するときの X 型の値 (const かもしれない) |
i , j | 有効な範囲を示し、X::value_type に暗黙に変換可能な要素を参照する LegacyInputIterator |
p | a への有効な const なイテレータ |
q | a への有効な逆参照可能な const へのイテレータ |
r | a への有効な逆参照可能なイテレータ |
q1 , q2 | a 内の有効な範囲を示す const なイテレータ |
il | std::initializer_list<value_type> 型のオブジェクト |
t | X::value_type 型の値 |
k | X::key_type 型の値 |
c | X::key_compare 型の値 (const かもしれない) |
kl | a 内の e および e のキー値 r を用いて c(r,kl) について a が分割されているような値 |
ku | !c(ku, r) について a が分割されているような値 |
ke | 暗黙に !c(ke, r) を示す c(r, ke) を用いて c(r, ke) および !c(ke, r) について a が分割されているような値 |
A | X によって使用される記憶域のアロケータ、または std::allocator_type<X::value_type> |
m | A に変換可能な型のアロケータ |
nh | X::node_type 型の非 const な右辺値 |
式 | 戻り値の型 | 事前/要件 | 事後/効果 | 計算量 |
---|---|---|---|---|
X::key_type | Key | Key が Destructible である | コンパイル時 | |
X::key_compare | Compare | コンパイル時 | ||
X::value_compare | BinaryPredicate を満たす型 | std::set および std::multiset の場合は key_compare、 std::map および std::multimap の場合は Key の順序関係 | コンパイル時 | |
X(c), X a(c); | key_compare が CopyConstructible である | c のコピーを key_comp として用いて空のコンテナを構築する。 | 定数時間 | |
X(), X a; | key_compare が CopyConstructible である | Compare() を key_comp として用いて空のコンテナを構築する。 | 定数時間 | |
X(i, j, c), X a(i, j, c); | key_compare が CopyConstructible であり、 value_type が X に *i から EmplaceConstructible である | c のコピーを key_comp として用いて空のコンテナを構築し、範囲 [i; j) からすべての要素を挿入する。 | 一般的には N log N 、 [i, j) がソートされている場合は N (ただし N は std::distance(i, j) です) | |
X(i, j), X a(i, j); | key_compare が CopyConstructible であり、 value_type が X に *i から EmplaceConstructible である | Compare() を key_comp として用いて空のコンテナを構築し、範囲 [i; j) からすべての要素を挿入する。 | 一般的には N log N 、 [i, j) が value_comp() に従ってソートされている場合は N (ただし N は std::distance(i, j) です) | |
X(il); | X(il.begin(), il.end()); と同等 | X(il.begin(), il.end()); と同等 | ||
a = il | X& | T が X に CopyInsertable であり、さらに CopyAssignable である | 範囲 [il.begin(), il.end()) を a に代入する。 代入されなかった a の要素は破棄される。 | 一般的に N log N 、 [il.begin(), il.end()) が value_comp() に従ってソートされている場合は N (ただし N は il.size()+ a.size() です) |
a.key_comp() | X::key_compare | a の構築に使用された比較オブジェクトが返される。 | 定数時間 | |
a.value_comp() | X::value_compare | 比較オブジェクトから構築された X::value_compare 型のオブジェクトが返される。 | 定数時間 |
std::map
または std::multimap
のいずれかである連想コンテナ X
は、 T
が Destructible であり計算量がコンパイル時である要件を持つ、結果の型が T の式 X::mapped_type を追加でサポートします。
This section is incomplete Reason: Finish requirements. |
[編集]標準ライブラリの連想コンテナ
一意なキーによってソートされた、キーのコレクション (クラステンプレート) | |
キーによってソートされた、キーのコレクション (クラステンプレート) | |
一意なキーによってソートされた、キー値ペアのコレクション (クラステンプレート) | |
キーによってソートされた、キー値ペアのコレクション (クラステンプレート) |