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