C ++ライブラリ-<unordered_map>

unordered_mapの紹介

順序付けられていないマップは、データ構造のような辞書です。これは(キー、値)ペアのシーケンスであり、単一の値のみが各一意のキーに関連付けられます。多くの場合、連想配列と呼ばれます。キーに基づいて個々の要素をすばやく取得できます。また、キー値を引数として使用してマップされた値に直接アクセスできるようにする直接アクセス演算子(添え字演算子[])も実装しています。

順序付けされていないマップは、キー値またはマップされた値のいずれかに関して特定の順序で要素を並べ替えません。代わりに、ハッシュ値に応じてバケットに編成し、キー値から直接個々の要素にすばやくアクセスできるようにします。

順序付けされていないマップは、キーによって個々の要素にアクセスするときに、マップよりもパフォーマンスが向上します。ただし、範囲の反復では、パフォーマンスはかなり低くなります。

定義

以下は、<unordered_map>ヘッダーファイルからのstd :: unordered_mapの定義です。

template < class Key,
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_map;

パラメーター

  • Key −キーのタイプ。

  • T −マップされた値のタイプ。

  • Hashキータイプタイプのオブジェクトを引数として受け取り、それに基づいてsize_tタイプの一意の値を返す単項関数オブジェクトタイプ。

  • Predキータイプの2つの引数がboolを返すバイナリ述語。

  • Alloc −アロケータオブジェクトのタイプ。

  • Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。

メンバータイプ

以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。

シニア番号 メンバータイプ 定義
1 key_type キー(テンプレートの最初のパラメーター)
2 maps_type T(テンプレートの2番目のパラメーター)
3 value_type ペア<constkey_type、mapped_type>
4 ハッシャー 3番目のテンプレートパラメーター(デフォルトはhash <key_type>)
5 key_equal 4番目のテンプレートパラメータ(デフォルトはequal_to <key_type>)
6 allocator_type Alloc(テンプレートの5番目のパラメーター)
7 参照 value_type&
8 const_reference const value_type&
9 ポインター allocator_traits <Alloc> :: pointer
10 const_pointer allocator_traits <Alloc> :: const_pointer
11 イテレータ value_typevalue_typeへのフォワードイテレータ
12 const_iterator 前方イテレータへのconst VALUE_TYPE VALUE_TYPE
13 local_iterator value_typeへのフォワードイテレータ
14 const_local_iterator constvalue_typeへのフォワードイテレータ
15 Difference_type ptrdiff_t
16 size_type size_t

<unordered_map>の関数

以下は、<unordered_map>ヘッダーのすべてのメソッドのリストです。

コンストラクター

シニア番号 方法と説明
1 unordered_map :: unordered_map デフォルトコンストラクタ

ゼロ要素で空のunordered_mapを構築します。

2 unordered_map :: unordered_map コピーコンストラクター

既存のunordered_mapに存在する各要素のコピーを使用してunordered_mapを構築します。

3 unordered_map :: unordered_map 移動コンストラクター

移動セマンティクスを使用して、他のコンテンツでunordered_mapを構築します。

4 unordered_map :: unordered_map 範囲コンストラクター

最初から最後までの範囲内の数の要素を使用してunordered_mapを構築します。

5 unordered_map :: unordered_mapinitializer_list コンストラクター

初期化リストからunordered_mapを構築します。

デストラクタ

シニア番号 方法と説明
1 unordered_map :: 〜unordered_map

unordered_mapオブジェクトのメモリの割り当てを解除して、オブジェクトを破棄します。

メンバー関数

シニア番号 方法と説明
1 unordered_map :: at

キーkに関連付けられたマップされた値への参照を返します。

2 unordered_map :: begin コンテナイテレータ

マップの最初の要素を参照するイテレータを返します。

3 unordered_map :: begin バケットイテレータ

バケットの1つにある最初の要素を指すイテレータを返します。

4 unordered_map :: bucket

キーkの要素が配置されているバケット番号を返します。

5 unordered_map :: bucket_count

unordered_mapコンテナ内のバケットの数を返します。

6 unordered_map :: backup_size

n番目のバケットに存在する要素の数を返します。

7 unordered_map :: cbegin コンテナイテレータ

unordered_mapの最初の要素を参照する定数イテレータを返します。

8 unordered_map :: cbegin バケットイテレータ

バケットの1つにある最初の要素を指す定数イテレータを返します。

9 unordered_map :: cend コンテナイテレータ

unordered_mapのpast-the-end要素を指す定数イテレータを返します。

10 unordered_map :: cend バケットイテレータ

バケットの1つにあるpast-the-end要素を指す定数イテレータを返します。

11 unordered_map :: clear

すべての要素を削除してunordered_mapを破棄し、unordered_mapのサイズをゼロに設定します

12 unordered_map :: count

キーkに関連付けられたマップされた値の数を返します。

13 unordered_map :: emplace

新しい要素を挿入してコンテナを拡張します。

14 unordered_map :: emplace_hint

要素の位置としてヒントを使用して、unordered_mapに新しい要素を挿入します。

15 unordered_map :: empty

unordered_mapが空かどうかをテストします。

16 unordered_map :: end コンテナイテレータ

unordered_mapのpast-the-end要素を指すイテレータを返します。

17 unordered_map :: end バケットイテレータ

バケットの1つにあるpast-the-end要素を指すイテレータを返します。

18 unordered_map :: equal

特定のキーに一致する要素の範囲を返します。

19 unordered_map :: erase 位置バージョン

unordered_mapの単一の要素を位置から削除します。

20 unordered_map :: erase キーバージョン

キーkに関連付けられたマップ値を削除します。

21 unordered_map :: erase 範囲バージョン

unordered_mapから要素の範囲を削除します。

22 unordered_map :: find

キーkに関連付けられている要素を検索します。

23 unordered_map :: get_allocator

unordered_mapに関連付けられたアロケータを返します。

24 unordered_map :: hash_function

unordered_mapコンテナによって使用されるハッシュ関数オブジェクトを計算します。

25 unordered_map :: insert

unordered_mapに新しい要素を挿入することにより、コンテナーを拡張します。

26 unordered_map :: 移動バージョンを挿入

unordered_mapに新しい要素を挿入することにより、コンテナーを拡張します。

27 unordered_map :: ヒントバージョンを挿入

unordered_mapに新しい要素を挿入することにより、containerを拡張します。

28 unordered_map ::挿入 移動とヒントバージョン

新しい要素を挿入することにより、unordered_mapを拡張します。

29 unordered_map :: 範囲バージョンを挿入

unordered_mapに新しい要素を挿入することにより、コンテナーを拡張します。

30 unordered_map :: insertinitializer_list バージョン

イニシャライザリストから新しい要素を挿入してマップを拡張します。

31 unordered_map :: key_eq

キーが等しいかどうかを比較する関数を返します。

32 unordered_map :: load_factor

unordered_mapコンテナの現在の負荷係数を返します。

33 unordered_map :: max_bucket_count

unordered_mapコンテナが持つことができるバケットの最大数を返します。

34 unordered_map :: max_load_factor バージョンを取得

unordered_mapコンテナの現在の最大負荷率を返します。

35 unordered_map :: max_load_factor セットバージョン

unordered_mapコンテナに新しい負荷係数を割り当てます。

36 unordered_map :: max_size

unordered_mapが保持できる要素の最大数を返します。

37 unordered_map :: operator = コピーバージョン

古いコンテンツを置き換えることでunordered_mapに新しいコンテンツを割り当て、必要に応じてサイズを変更します。

38 unordered_map :: operator = ムーブバージョン

あるunordered_mapの内容を別のunordered_mapに移動し、必要に応じてサイズを変更します。

39 unordered_map :: operator = initializer_listバージョン

初期化子リストからunordered_mapに要素をコピーします。

40 unordered_map :: operator []

キーkがコンテナ内の要素と一致する場合、メソッドは要素への参照を返します。

41 unordered_map :: operator [] ムーブバージョン

キーkがコンテナ内の要素と一致する場合、メソッドは要素への参照を返します。

42 unordered_map :: rehash

コンテナ内のバケット数をn以上に設定します。

43 unordered_map :: reserved

コンテナ内のバケットの数を、少なくともn個の要素を含むのに最も適切な数に設定します。

44 unordered_map :: size

unordered_mapに存在する要素の数を返します。

45 unordered_map :: swap

最初のunordered_mapのコンテンツを別のコンテンツと交換します。

非メンバーのオーバーロードされた関数

シニア番号 方法と説明
1 unordered_map :: operator ==

2つのunordered_mapsが等しいかどうかをテストします。

2 unordered_map :: operator!=

2つのunordered_mapsが等しいかどうかをテストします。

3 unordered_map :: swap

最初のunordered_mapのコンテンツを別のコンテンツと交換します。

unordered_multimapの概要

Unordered_multimapは、データ構造のような辞書です。これは(キー、値)ペアのシーケンスであり、異なる要素が同等のキーを持つことができます。同等のキーを持つ要素は、同じバケットにグループ化され、equal_rangeイテレータがそれらすべてを反復処理できるようになっています。

Unordered_multimapは、キー値またはマップされた値のいずれかに関して特定の順序で要素を並べ替えません。代わりに、ハッシュ値に応じてバケットに編成し、キー値から直接個々の要素にすばやくアクセスできるようにします。

定義

以下は、<unordered_map>ヘッダーファイルからのstd :: unordered_multimapの定義です。

template < class Key, 
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_multimap;

パラメーター

  • Key −キーのタイプ。

  • T −マップされた値のタイプ。

  • Hashキータイプタイプのオブジェクトを引数として受け取り、それに基づいてsize_tタイプの一意の値を返す単項関数オブジェクトタイプ。

  • Predキータイプの2つの引数がboolを返すバイナリ述語。

  • Alloc −アロケータオブジェクトのタイプ。

    Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。

メンバータイプ

以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。

シニア番号 メンバータイプ 定義
1 key_type キー(テンプレートの最初のパラメーター)
2 maps_type T(テンプレートの2番目のパラメーター)
3 value_type ペア<constkey_type、mapped_type>
4 ハッシャー 3番目のテンプレートパラメーター(デフォルトはhash <key_type>)
5 key_equal 4番目のテンプレートパラメータ(デフォルトはequal_to <key_type>)
6 allocator_type Alloc(テンプレートの5番目のパラメーター)
7 参照 value_type&
8 const_reference const value_type&
9 ポインター allocator_traits <Alloc> :: pointer
10 const_pointer allocator_traits <Alloc> :: const_pointer
11 イテレータ value_typevalue_typeへのフォワードイテレータ
12 const_iterator 前方イテレータへのconst VALUE_TYPE VALUE_TYPE
13 local_iterator value_typeへのフォワードイテレータ
14 const_local_iterator constvalue_typeへのフォワードイテレータ
15 Difference_type ptrdiff_t
16 size_type size_t

<unordered_multimap>の関数

以下は、<unordered_map>ヘッダーのすべてのメソッドのリストです。

コンストラクター

シニア番号 方法と説明
1 unordered_multimap :: unordered_multimap() デフォルトコンストラクタ

ゼロ要素で空のunordered_multimapを構築します。

2 unordered_multimap :: unordered_multimap() コピーコンストラクター

既存のunordered_multimapに存在する各要素のコピーを使用してunordered_multimapを構築します。

3 unordered_multimap :: unordered_multimap() 移動コンストラクター

移動セマンティクスを使用して、他のコンテンツを使用してunordered_multimapを構築します。

4 unordered_multimap :: unordered_multimap() 範囲コンストラクター

最初から最後までの範囲内の数の要素を使用してunordered_multimapを構築します。

5 unordered_multimap :: unordered_multimap() initializer_listコンストラクター

初期化リストからunordered_multimapを構築します。

デストラクタ

シニア番号 方法と説明
1 unordered_multimap :: 〜unordered_multimap()

unordered_multimapオブジェクトのメモリの割り当てを解除して、オブジェクトを破棄します。

メンバー関数

シニア番号 方法と説明
1 unordered_multimap :: begin() コンテナイテレータ

unordered_mulitmapの最初の要素を参照するイテレータを返します。

2 unordered_multimap :: begin() バケットイテレータ

バケットの1つにある最初の要素を指すイテレータを返します。

3 unordered_multimap ::週()

キーkの要素が配置されているバケット番号を返します。

4 unordered_multimap :: backup_count()

unordered_multimapコンテナに存在するバケットの数を返します。

5 unordered_multimap :: backup_size()

n番目のバケットに存在する要素の数を返します。

6 unordered_multimap :: cbegin() コンテナイテレータ

unordered_multimapの最初の要素を参照する定数イテレータを返します。

7 unordered_multimap :: cbegin() バケットイテレータ

バケットの1つにある最初の要素を指す定数イテレータを返します。

8 unordered_multimap :: cend() コンテナイテレータ

unordered_multimapの過去の終わりの要素を指す定数イテレータを返します。

9 unordered_multimap :: cend() バケットイテレータ

バケットの1つにあるpast-the-end要素を指す定数イテレータを返します。

10 unordered_multimap :: clear()

すべての要素を削除してunordered_multimapを破棄し、unordered_multimapのサイズをゼロに設定します

11 unordered_multimap :: count()

キーkに関連付けられたマップされた値の数を返します。

12 unordered_multimap :: emplace()

新しい要素を挿入してコンテナを拡張します。

13 unordered_multimap :: emplace_hint()

要素の位置としてヒントを使用して、unordered_multimapに新しい要素を挿入します。

14 unordered_multimap :: empty()

unordered_multimapが空かどうかをテストします。

15 unordered_multimap :: end() コンテナイテレータ

unordered_multimapのpast-the-end要素を指すイテレータを返します。

16 unordered_multimap :: end() バケットイテレータ

バケットの1つにあるpast-the-end要素を指すイテレータを返します。

17 unordered_multimap :: equal_range()

特定のキーに一致する要素の範囲を返します。

18 unordered_multimap :: Erase() 位置バージョン

unordered_multimapの単一の要素を位置から削除します。

19 unordered_multimap :: Erase() キーバージョン

キーkに関連付けられたマップ値を削除します。

20 unordered_multimap :: Erase() 範囲バージョン

unordered_multimapから要素の範囲を削除します。

21 unordered_multimap :: find()

キーkに関連付けられている要素を検索します。

22 unordered_multimap :: get_allocator()

unordered_multimapに関連付けられたアロケータを返します。

23 unordered_multimap :: hash_function()

unordered_multimapコンテナによって使用されるハッシュ関数オブジェクトを計算します。

24 unordered_multimap :: insert() 値バージョン

unordered_multimapに新しい要素を挿入することにより、コンテナーを拡張します。

25 unordered_multimap :: insert() バージョンの移動

新しい要素を挿入することにより、unordered_multimapを拡張します。

26 unordered_multimap :: insert() ヒントバージョン

unordered_multimapに新しい要素を挿入することにより、コンテナーを拡張します。

27 unordered_multimap :: insert() ヒント移動バージョン

移動セマンティクスを使用してunordered_multimapに新しい要素を挿入することにより、コンテナーを拡張します。

28 unordered_multimap :: insert() 範囲バージョン

unordered_multimapに新しい要素を挿入することにより、コンテナーを拡張します。

29 unordered_multimap :: insert() initializer_listバージョン

イニシャライザリストから新しい要素を挿入することにより、unordered_multimapを拡張します。

30 unordered_multimap :: key_eq()

キーが等しいかどうかを比較する関数を返します。

31 unordered_multimap :: load_factor()

unordered_multimapコンテナの現在の負荷係数を返します。

32 unordered_multimap :: max_bucket_count()

unordered_multimapコンテナが持つことができるバケットの最大数を返します。

33 unordered_multimap :: max_load_factor() バージョンを取得

unordered_multimapコンテナの現在の最大負荷率を返します。

34 unordered_multimap :: max_load_factor() バージョンを設定

unordered_multimapコンテナに新しい負荷係数を割り当てます。

35 unordered_multimap :: max_size()

unordered_multimapが保持できる要素の最大数を返します。

36 unordered_multimap :: operator =() コピーバージョン

古いコンテンツを置き換えることでunordered_multimapに新しいコンテンツを割り当て、必要に応じてサイズを変更します。

37 unordered_multimap :: operator =() ムーブバージョン

あるunordered_multimapの内容を別のコンテンツに移動し、必要に応じてサイズを変更します。

38 unordered_multimap :: operator =() initializer_listバージョン

初期化子リストからunordered_multimapに要素をコピーします。

39 unordered_multimap :: rehash()

コンテナ内のバケット数をn以上に設定します。

40 unordered_multimap :: reserved()

コンテナ内のバケットの数を、少なくともn個の要素を含むのに最も適切な数に設定します。

41 unordered_multimap :: size()

unordered_multimapに存在する要素の数を返します。

42 unordered_multimap :: swap()

最初のunordered_multimapのコンテンツを別のコンテンツと交換します。

非メンバーのオーバーロードされた関数

シニア番号 方法と説明
1 unordered_multimap :: operator ==()

2つのunordered_multimapsが等しいかどうかをテストします。

2 unordered_multimap :: operator!=()

2つのunordered_multimapsが等しいかどうかをテストします。

3 unordered_multimap :: swap()

最初のunordered_multimapのコンテンツを別のコンテンツと交換します。