std::multimap
は、同じキーを持つ複数のエントリを許可しつつ、キーと値のペアのソートされたリストを含む連想コンテナです。ソートはキーに適用される比較関数
Compare
に従って行われます。検索、挿入、削除操作の計算量は対数時間です。
std::multimapのイテレータは、構築時に使用された比較関数によって定義される非降順でキーを反復します。つまり、以下の場合
m
、
std::multimap
it_l
および
it_r
、
m
へのデリファレンス可能なイテレータで、
it_l
<
it_r
を満たすもの。
m.
value_comp
(
)
(
*
it_r,
*
it_l
)
==
false
(デフォルトの比較を使用する場合は最小から最大へ)。
キーが等価と比較されるキーと値のペアの順序は、挿入順であり、変更されません。
(since C++11)
標準ライブラリが
Compare
要件を使用するすべての箇所では、等価性は
Compare
で記述されている等価関係を使用して決定されます。大まかに言えば、二つのオブジェクト
a
と
b
は、互いが他方より小さいと比較されない場合に等価と見なされます:
!
comp
(
a, b
)
&&
!
comp
(
b, a
)
。
std::multimap
は
Container
、
AllocatorAwareContainer
、
AssociativeContainer
および
ReversibleContainer
の要件を満たします。
std::multimapの全メンバ関数は
constexpr
です:定数式の評価中に
std::multimap
オブジェクトを作成して使用することが可能です。
ただし、
std::multimap
オブジェクト自体は一般的に
constexpr
にはなりません。動的に確保されたストレージはすべて同一の定数式評価内で解放されなければならないためです。
(C++26以降)
目次
テンプレートパラメータ
メンバ型
型
定義
key_type
Key
mapped_type
T
value_type
std :: pair < const Key , T >
size_type
符号なし整数型 (通常は std::size_t )
difference_type
符号付き整数型 (通常は std::ptrdiff_t )
key_compare
Compare
allocator_type
Allocator
reference
value_type &
const_reference
const value_type &
pointer
Allocator::pointer
(C++11まで)
std :: allocator_traits < Allocator >:: pointer
(C++11以降)
const_pointer
Allocator::const_pointer
(C++11まで)
std :: allocator_traits < Allocator >:: const_pointer
(C++11以降)
iterator
LegacyBidirectionalIterator と ConstexprIterator (C++26以降) から value_type
const_iterator
LegacyBidirectionalIterator と ConstexprIterator (C++26以降) から const value_type
reverse_iterator
std :: reverse_iterator < iterator >
const_reverse_iterator
std :: reverse_iterator < const_iterator >
node_type (C++17以降)
の特殊化 node handle を表すコンテナノード
メンバークラス
value_type型のオブジェクトを比較する
(クラス)
メンバー関数
multimapを構築する
(公開メンバ関数)
multimapを破棄する
(public member function)
コンテナに値を代入する
(公開メンバ関数)
関連付けられたアロケータを返す
(public member function)
イテレータ
先頭を指すイテレータを返す
(公開メンバ関数)
終端を指すイテレータを返す
(公開メンバ関数)
先頭を指す逆方向イテレータを返す
(public member function)
末尾を指す逆方向イテレータを返す
(public member function)
容量
コンテナが空かどうかをチェックします
(public member function)
要素数を返す
(公開メンバ関数)
要素の最大可能数を返す
(public member function)
修飾子
内容をクリアする
(public member function)
要素を挿入する
またはノード
(C++17以降)
(公開メンバ関数)
要素の範囲を挿入する
(公開メンバ関数)
要素をその場で構築する
(公開メンバ関数)
ヒントを使用して要素をその場で構築する
(公開メンバ関数)
要素を削除する
(公開メンバ関数)
内容を交換する
(公開メンバ関数)
コンテナからノードを抽出する
(公開メンバ関数)
別のコンテナからノードをスプライスする
(公開メンバ関数)
ルックアップ
特定のキーに一致する要素の数を返す
(public member function)
特定のキーを持つ要素を検索
(公開メンバ関数)
指定されたキーを持つ要素がコンテナに含まれているかどうかをチェックします
(公開メンバ関数)
特定のキーに一致する要素の範囲を返す
(公開メンバ関数)
指定されたキーより
小さくない
最初の要素へのイテレータを返す
(公開メンバ関数)
指定されたキーより
大きい
最初の要素へのイテレータを返す
(公開メンバ関数)
オブザーバー
キーを比較する関数を返す
(公開メンバ関数)
value_type型のオブジェクト内のキーを比較する関数を返します
(public member function)
非メンバー関数
(C++20で削除)
(C++20で削除)
(C++20で削除)
(C++20で削除)
(C++20で削除)
(C++20)
2つの
multimap
の値を辞書順で比較する
(関数テンプレート)
std::swap
アルゴリズムを特殊化する
(関数テンプレート)
特定の条件を満たす全ての要素を削除する
(関数テンプレート)
注記
例
不具合報告
以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。
関連項目
キー-値ペアのコレクション、キーでソートされ、キーは一意
(クラステンプレート)
キー-値ペアのコレクション、キーでハッシュ化
(クラステンプレート)
2つのコンテナを適応させてキー-値ペアのコレクションを提供、キーでソート
(クラステンプレート)