名前付き要件: 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. |
[編集] 標準ライブラリの連想コンテナ
一意なキーによってソートされた、キーのコレクション (クラステンプレート) | |
キーによってソートされた、キーのコレクション (クラステンプレート) | |
一意なキーによってソートされた、キー値ペアのコレクション (クラステンプレート) | |
キーによってソートされた、キー値ペアのコレクション (クラステンプレート) |