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のコンテンツを別のコンテンツと交換します。 |