std:: flat_multimap
|
ヘッダーで定義
<flat_map>
|
||
|
template
<
class
Key,
|
(C++23以降) | |
flat_multimapは、
コンテナアダプタ
であり、同じキー値を持つ複数のエントリを許可しながら、キーと値のペアを含む連想コンテナの機能を提供します。キーは比較関数
Compare
を使用してソートされます。
クラステンプレート
flat_multimap
は、
KeyContainer
および
MappedContainer
型のオブジェクトとして渡される2つの基盤となるコンテナのラッパーとして機能します。最初のコンテナはソートされ、各キーに対応する値は同じインデックス(オフセット)の2番目のコンテナに格納されます。両方のコンテナの要素数は同じです。
標準ライブラリが Compare 要件を使用するすべての箇所では、一意性は同値関係を用いて決定されます。非公式に言えば、二つのオブジェクト a と b は、互いが他方より小さいと比較されない場合に同値と見なされます: ! comp ( a, b ) && ! comp ( b, a ) 。
std::flat_multimap
は、
Container
、
ReversibleContainer
、
オプションのコンテナ要件
の要件を満たし、さらに
AssociativeContainer
のすべての要件(対数検索計算量を含む)を満たします。ただし以下の例外を除きます:
- ノードに関連する要件は適用されません、
- イテレータの無効化要件が異なります、
- 挿入および削除操作の計算量は線形です。
フラットマルチマップは、等しいキーを使用する AssociativeContainer の操作のほとんどをサポートします。
std::flat_multimapのすべてのメンバー関数は
std::flat_multimap
です:定数式の評価において
std::flat_multimap
オブジェクトを作成および使用することが可能です。
ただし、
|
(C++26以降) |
目次 |
イテレータの無効化
| このセクションは不完全です |
テンプレートパラメータ
| Key | - |
キーの型。
Key
が
KeyContainer::value_type
と同じ型でない場合、プログラムは不適格となる。
|
| T | - |
マップされた値の型。
T
が
MappedContainer::value_type
と同じ型でない場合、プログラムは不適格となる。
|
| Compare | - | 狭義の弱順序を提供する Compare 型。 |
|
KeyContainer
MappedContainer |
- |
キーとマップされた値を格納する基盤となる
SequenceContainer
の型。これらのコンテナのイテレータは
LegacyRandomAccessIterator
を満たすか、
random_access_iterator
をモデル化する必要がある。それらのメンバ関数
size
および
max_size
の呼び出しは例外によって終了してはならない。
標準コンテナ std::vector および std::deque はこれらの要件を満たす。 |
メンバー型
| 型 | 定義 |
key_container_type
|
KeyContainer
|
mapped_container_type
|
MappedContainer
|
key_type
|
Key
|
mapped_type
|
T
|
value_type
|
std:: pair < key_type, mapped_type > |
key_compare
|
Compare
|
reference
|
std:: pair < const key_type & , mapped_type & > |
const_reference
|
std:: pair < const key_type & , const mapped_type & > |
size_type
|
std::size_t |
difference_type
|
std::ptrdiff_t |
iterator
|
実装定義
LegacyInputIterator
,
ConstexprIterator
(C++26以降)
かつ
random_access_iterator
で
value_type
を指すもの
|
const_iterator
|
実装定義
LegacyInputIterator
,
ConstexprIterator
(C++26以降)
かつ
random_access_iterator
で
const
value_type
を指すもの
|
reverse_iterator
|
std:: reverse_iterator < iterator > |
const_reverse_iterator
|
std:: reverse_iterator < const_iterator > |
containers
|
基盤となるコンテナを記述する型
struct
containers
|
メンバークラス
value_type
型のオブジェクトを比較する
(クラス) |
メンバーオブジェクト
| メンバー | 説明 |
containers
c
(private)
|
アダプトされたコンテナ
( 説明専用メンバーオブジェクト* ) |
key_compare
compare
(private)
|
比較関数オブジェクト
( 説明専用メンバーオブジェクト* ) |
メンバー関数
flat_multimap
を構築する
(公開メンバ関数) |
|
|
(destructor)
(implicitly declared)
|
コンテナアダプタの全要素を破棄する
(public member function) |
|
コンテナアダプタに値を代入する
(公開メンバ関数) |
|
イテレータ |
|
|
先頭を指すイテレータを返す
(公開メンバ関数) |
|
|
終端へのイテレータを返す
(公開メンバ関数) |
|
|
先頭を指す逆方向イテレータを返す
(public member function) |
|
|
末尾を指す逆方向イテレータを返す
(public member function) |
|
容量 |
|
|
コンテナアダプタが空かどうかをチェックする
(公開メンバ関数) |
|
|
要素数を返す
(公開メンバ関数) |
|
|
格納可能な最大要素数を返す
(public member function) |
|
修飾子 |
|
|
要素をその場で構築する
(公開メンバ関数) |
|
|
ヒントを使用して要素をその場で構築する
(公開メンバ関数) |
|
|
要素を挿入する
(公開メンバ関数) |
|
|
要素の範囲を挿入する
(公開メンバ関数) |
|
|
基になるコンテナを抽出する
(公開メンバ関数) |
|
|
基になるコンテナを置き換える
(公開メンバ関数) |
|
|
要素を削除する
(公開メンバ関数) |
|
|
内容を交換する
(公開メンバー関数) |
|
|
内容をクリアする
(public member function) |
|
ルックアップ |
|
|
特定のキーを持つ要素を検索
(public member function) |
|
|
指定されたキーに一致する要素の数を返す
(public member function) |
|
|
指定されたキーを持つ要素がコンテナに含まれているかどうかをチェックします
(public member function) |
|
|
指定されたキーより
小さくない
最初の要素へのイテレータを返す
(公開メンバ関数) |
|
|
指定されたキーより
大きい
最初の要素へのイテレータを返す
(公開メンバ関数) |
|
|
特定のキーに一致する要素の範囲を返す
(公開メンバ関数) |
|
オブザーバー |
|
|
キーを比較する関数を返す
(public member function) |
|
value_type
型のオブジェクト内でキーを比較する関数を返す
(public member function) |
|
|
基になるキーコンテナへの直接アクセス
(公開メンバ関数) |
|
|
基になる値コンテナへの直接アクセス
(公開メンバー関数) |
|
非メンバー関数
|
(C++23)
|
2つの
flat_multimap
の値を辞書順で比較する
(関数テンプレート) |
|
(C++23)
|
std::swap
アルゴリズムを特殊化する
(関数テンプレート) |
|
(C++23)
|
特定の条件を満たすすべての要素を削除する
(関数テンプレート) |
ヘルパークラス
|
std::uses_allocator
型特性を特殊化
(クラステンプレートの特殊化) |
タグ
|
範囲の要素がソートされていることを示す(一意性は要求されない)
(タグ) |
推論ガイド
注記
メンバ型
iterator
と
const_iterator
は同じ型のエイリアスである可能性があります。これは、これら2つの型をパラメータ型として使用する関数オーバーロードのペアを定義すると、
One Definition Rule
に違反する可能性があることを意味します。
iterator
は
const_iterator
に変換可能であるため、代わりに
const_iterator
をパラメータ型とする単一の関数が機能します。
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_flat_map
|
202207L
|
(C++23) |
std::flat_map
および
std::flat_multimap
|
__cpp_lib_constexpr_flat_map
|
202502L
|
(C++26) |
constexpr
std::flat_multimap
|
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++23)
|
2つのコンテナを適応させ、一意のキーでソートされたキーと値のペアのコレクションを提供する
(クラステンプレート) |
|
キーでソートされたキーと値のペアのコレクション
(クラステンプレート) |
|
|
(C++11)
|
キーでハッシュ化されたキーと値のペアのコレクション
(クラステンプレート) |