Namespaces
Variants

std:: unordered_multimap

From cppreference.net
ヘッダーで定義 <unordered_map>
template <

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

> class unordered_multimap ;
(1) (C++11以降)
namespace pmr {

template <
class Key,
class T,
class Hash = std:: hash < Key > ,
class Pred = std:: equal_to < Key >
> using unordered_multimap =
std :: unordered_multimap < Key, T, Hash, Pred,
std:: pmr :: polymorphic_allocator < std:: pair < const Key, T >>> ;

}
(2) (C++17以降)

std::unordered_multimap は、同等のキーをサポートする(unordered_multimapは各キー値の複数のコピーを含むことができる)順序付けされていない連想コンテナであり、キーと別の型の値を関連付けます。unordered_multimapクラスは前方イテレータをサポートします。検索、挿入、削除の操作は平均的に定数時間の計算量を持ちます。

内部的には、要素は特定の順序でソートされず、バケットに整理されます。要素がどのバケットに配置されるかは、そのキーのハッシュに完全に依存します。これにより、個々の要素への高速なアクセスが可能になります。なぜなら、ハッシュが計算されると、その要素が配置された正確なバケットを指し示すからです。

このコンテナの反復順序は安定である必要はありません(したがって、例えば std::equal を使用して2つの std::unordered_multimap を比較することはできません)。ただし、キーが 等価 と比較される( key_eq() を比較子として等しいと比較される)要素の各グループは、反復順序において連続した部分範囲を形成し、 equal_range() でもアクセス可能です。

std::unordered_multimap Container AllocatorAwareContainer UnorderedAssociativeContainer の要件を満たします。

std::unordered_multimapのすべてのメンバー関数は std::unordered_multimap です: constexpr 定数式の評価において std::unordered_multimap オブジェクトを作成および使用することが可能です。

ただし、 std::unordered_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
hasher Hash
key_equal KeyEqual
allocator_type Allocator
reference value_type &
const_reference const value_type &
pointer std:: allocator_traits < Allocator > :: pointer
const_pointer std:: allocator_traits < Allocator > :: const_pointer
iterator LegacyForwardIterator かつ ConstexprIterator (C++26以降) value_type を指すイテレータ
const_iterator LegacyForwardIterator かつ ConstexprIterator (C++26以降) const value_type を指すイテレータ
local_iterator カテゴリ、値型、差分行、ポインタ型、参照型が iterator と同じイテレータ型。
このイテレータは単一のバケット内を反復処理するために使用できるが、バケット間では使用できない
const_local_iterator カテゴリ、値型、差分行、ポインタ型、参照型が const_iterator と同じイテレータ型。
このイテレータは単一のバケット内を反復処理するために使用できるが、バケット間では使用できない
node_type (C++17以降) node handle の特殊化で、コンテナノードを表す

メンバー関数

unordered_multimap を構築する
(public member function)
unordered_multimap を破棄する
(公開メンバ関数)
コンテナに値を代入する
(公開メンバ関数)
関連するアロケータを返す
(public member function)
イテレータ
先頭を指すイテレータを返す
(公開メンバ関数)
終端イテレータを返す
(公開メンバ関数)
容量
コンテナが空かどうかをチェックします
(public member function)
要素数を返す
(public member function)
格納可能な最大要素数を返す
(公開メンバ関数)
修飾子
内容をクリアする
(public member function)
要素を挿入する またはノード (C++17以降)
(公開メンバ関数)
要素の範囲を挿入する
(公開メンバ関数)
要素をその場で構築する
(公開メンバ関数)
ヒントを使用して要素をその場で構築する
(公開メンバ関数)
要素を削除する
(公開メンバ関数)
内容を交換する
(public member function)
(C++17)
コンテナからノードを抽出する
(公開メンバ関数)
(C++17)
別のコンテナからノードをスプライスする
(公開メンバ関数)
ルックアップ
指定されたキーに一致する要素の数を返す
(公開メンバ関数)
特定のキーを持つ要素を検索
(公開メンバ関数)
(C++20)
指定されたキーを持つ要素がコンテナに含まれているかどうかをチェックします
(public member function)
特定のキーに一致する要素の範囲を返す
(公開メンバ関数)
バケットインターフェース
指定されたバケットの先頭を指すイテレータを返す
(public member function)
指定されたバケットの終端を指すイテレータを返す
(public member function)
バケット数を返す
(公開メンバ関数)
バケットの最大数を返す
(public member function)
特定のバケット内の要素数を返す
(公開メンバー関数)
指定されたキーのバケットを返す
(public member function)
ハッシュポリシー
バケットあたりの平均要素数を返す
(公開メンバ関数)
バケットあたりの最大平均要素数を管理します
(公開メンバ関数)
指定された数のバケットを少なくとも確保し、ハッシュテーブルを再生成する
(public member function)
指定された数の要素以上の領域を確保し、ハッシュテーブルを再生成する
(public member function)
オブザーバー
キーをハッシュするために使用される関数を返す
(公開メンバ関数)
キーの等価性を比較するために使用される関数を返します
(公開メンバ関数)

非メンバー関数

(C++11) (C++11) (removed in C++20)
unordered_multimap内の値を比較する
(関数テンプレート)
std::swap アルゴリズムを特殊化する
(関数テンプレート)
特定の条件を満たす全ての要素を削除する
(関数テンプレート)

推論ガイド

(C++17以降)

注記

機能テスト マクロ 標準 機能
__cpp_lib_containers_ranges 202202L (C++23) コンテナのための範囲構築と挿入
__cpp_lib_constexpr_unordered_map 202502L (C++26) constexpr std::unordered_multimap

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 2050 C++11 reference const_reference pointer
および const_pointer の定義は allocator_type に基づいていた
value_type
std::allocator_traits に基づく

関連項目

キーと値のペアのコレクション、キーでハッシュ化、キーは一意
(クラステンプレート)
キーと値のペアのコレクション、キーでソート
(クラステンプレート)
2つのコンテナを適合させて、キーでソートされたキーと値のペアのコレクションを提供
(クラステンプレート)