名前空間
変種
操作

std::unordered_multiset

提供: cppreference.com
< cpp‎ | container
 
 
 
 
ヘッダ <unordered_set> で定義
template<

    class Key,
    class Hash = std::hash<Key>,
    class KeyEqual = std::equal_to<Key>,
    class Allocator = std::allocator<Key>

> class unordered_multiset;
(1) (C++11およびそれ以降)
namespace pmr {

    template <class Key,
              class Hash = std::hash<Key>,
              class Pred = std::equal_to<Key>>
    using unordered_multiset = std::unordered_multiset<Key, Hash, Pred,
                                   std::pmr::polymorphic_allocator<Key>>

}
(2) (C++17およびそれ以降)

unordered multiset は Key 型の一意とは限らないオブジェクトの集合を格納する連想コンテナです。 検索、挿入、削除は平均定数時間の計算量です。

内部的には、要素は特定の順序にソートされず、複数のバケットにまとめられます。 要素がどのバケットに配置されるかはもっぱらその値のハッシュに依存します。 これにより、いったんハッシュが計算されればその要素が配置される正確なバケットを参照できるため、個々の要素への高速なアクセスが可能になります。

このコンテナのイテレーション順序が安定であることは要求されません (そのため、例えば2つの std::unordered_multiset を比較するために std::equal を使うことはできません) が、キーが等しい (key_eq() で比較して等しい) 要素のグループは、イテレーション順序において隣接した範囲を形成します。 この範囲は equal_range() でアクセスできます。

std::unordered_multisetContainer, AllocatorAwareContainer, UnorderedAssociativeContainer の要求を満たします。

目次

[編集] メンバ型

メンバ型 定義
key_type Key [edit]
value_type Key [edit]
size_type 符号なし整数型 (通常 std::size_t) [edit]
difference_type 符号付き整数型 (通常 std::ptrdiff_t) [edit]
hasher Hash [edit]
key_equal KeyEqual [edit]
allocator_type Allocator [edit]
reference value_type& [edit]
const_reference const value_type& [edit]
pointer std::allocator_traits<Allocator>::pointer [edit]
const_pointer std::allocator_traits<Allocator>::const_pointer [edit]
iterator const ForwardIterator [edit]
const_iterator const ForwardIterator [edit]
local_iterator カテゴリおよび value, difference, pointer, reference の各型が iterator と同じイテレータ型。 このイテレータはバケット内をイテレートするために使用することができますが、別のバケットには移動できません[edit]
const_local_iterator カテゴリおよび value, difference, pointer, reference の各型が const_iterator と同じイテレータ型。 このイテレータはバケット内をイテレートするために使用することができますが、別のバケットには移動できません[edit]
node_type
(C++17およびそれ以降)
コンテナノードを表すノードハンドルの特殊化 [edit]

[編集] メンバ関数

unordered_multiset を構築します
(パブリックメンバ関数) [edit]
unordered_multiset を破棄します
(パブリックメンバ関数) [edit]
コンテナに値を代入します
(パブリックメンバ関数) [edit]
関連付けられているアロケータを返します
(パブリックメンバ関数) [edit]
イテレータ
先頭を指すイテレータを返します
(パブリックメンバ関数) [edit]
終端を指すイテレータを返します
(パブリックメンバ関数) [edit]
容量
コンテナが空かどうか調べます
(パブリックメンバ関数) [edit]
要素数を返します
(パブリックメンバ関数) [edit]
可能な最大の要素数を返します
(パブリックメンバ関数) [edit]
変更
すべての要素を削除します
(パブリックメンバ関数) [edit]
要素またはノード (C++17およびそれ以降)を挿入します
(パブリックメンバ関数) [edit]
要素をその場で構築します
(パブリックメンバ関数) [edit]
ヒントを使用して要素をその場で構築します
(パブリックメンバ関数) [edit]
要素を削除します
(パブリックメンバ関数) [edit]
内容を入れ替えます
(パブリックメンバ関数) [edit]
(C++17)
コンテナからノードを抽出します
(パブリックメンバ関数) [edit]
(C++17)
他のコンテナからノードを接合します
(パブリックメンバ関数) [edit]
検索
指定されたキーと一致する要素の数を返します
(パブリックメンバ関数) [edit]
指定されたキーを持つ要素を探します
(パブリックメンバ関数) [edit]
(C++20)
コンテナが指定されたキーを持つ要素を格納しているかどうか調べます
(パブリックメンバ関数) [edit]
指定されたキーに一致する要素の範囲を返します
(パブリックメンバ関数) [edit]
バケットインタフェース
指定されたバケットの先頭を指すイテレータを返します
(パブリックメンバ関数) [edit]
指定されたバケットの終端を指すイテレータを返します
(パブリックメンバ関数) [edit]
バケットの数を返します
(パブリックメンバ関数) [edit]
バケットの最大数を返します
(パブリックメンバ関数) [edit]
特定のバケットの要素数を返します
(パブリックメンバ関数) [edit]
指定されたキーのためのバケットを返します
(パブリックメンバ関数) [edit]
ハッシュポリシー
バケットあたりの平均要素数を返します
(パブリックメンバ関数) [edit]
バケットあたりの平均要素数の最大値を管理します
(パブリックメンバ関数) [edit]
少なくとも指定された数のバケットを予約します。 これによりハッシュテーブルが再生成されます。
(パブリックメンバ関数) [edit]
少なくとも指定された数の要素のための空間を予約します。 これによりハッシュテーブルが再生成されます。
(パブリックメンバ関数) [edit]
観察
キーをハッシュするために使用される関数を返します
(パブリックメンバ関数) [edit]
キーが等しいかどうかを比較するために使用される関数を返します
(パブリックメンバ関数) [edit]

[編集] 非メンバ関数

unordered_multiset 内の値を比較します
(関数テンプレート) [edit]
std::swap アルゴリズムの特殊化
(関数テンプレート) [edit]

[編集] 推定ガイド(C++17およびそれ以降)

[編集] ノート

メンバ型 iterator および const_iterator は同じ型のエイリアスである場合があります。 iteratorconst_iterator に変換可能なので、 One Definition Rule 違反回避のため関数の引数リストには const_iterator を使用するべきです。