次の方法で共有


hash_map Class

[!メモ]

この API は、互換性のために残されています。代わりに unordered_map クラスです。

各要素が値は一意であるおよび関連データ値を持つ並べ替えキー ペアであるコレクションからデータをすぐに格納および取得します。

template <
   class Key, 
   class Type, 
   class Traits=hash_compare<Key, less<Key> >, 
   class Allocator=allocator<pair <const Key, Type> > 
>
class hash_map

パラメーター

  • Key
    hash_mapに格納される主要なデータ型。


  • hash_mapに格納される要素のデータ型。

  • Traits
    2個の関数オブジェクトを含む型、クラスの相対位置1はディレクティブと型 size_tの符号なし整数、要素のキー値を割り当てる単項の述語であるハッシュ関数を判断するには、並べ替えキーとして2要素の値を比較するできる比較します。このオプションを省略すると、hash_compare<, less<調整します> [>] が既定の設定を調整します

  • Allocator
    hash_mapのメモリの割り当てと解放に関する詳細をカプセル化する、格納されたアロケーター オブジェクトを表す型。このオプションを省略すると、既定値はallocator<pair <const **> [>]です

解説

hash_mapは次のとおりです:

  • サポートする可変サイズのコンテナーが関連するキー値に要素の値の有効な検索基づいて、連想コンテナー。

  • 要素にアクセスするには、双方向反復子を提供するため、実行する。

  • 要素が要素のキー値に適用されたハッシュ関数の値に基づいてバケットにグループ化されるため、ハッシュ。

  • 要素に一意キーを持つ必要があるという意味で一意です。

  • 要素のデータ値がとは異なるキー値であるため、二つの連想コンテナー。

  • 用意されている機能とテンプレート クラスは、一般的に、要素またはキーとして含まれるデータの種類とは無関係です。代わりに要素とキーに使用するデータ型は比較関数とアロケーターとともにクラス テンプレートのパラメーターとして指定されます。

並べ替えのハッシュの主な利点はより効率です。; 正常なハッシュはコンテナー要素の数値の対数に比例した並べ替え手法の時刻と比較して定数平均時間に挿入、削除、および検索を実行します。hash_mapの要素の値が、関連するキー値が、直接変更することはできません。代わりに、古い要素に関連付けられているキー値が削除される挿入新しい要素に関連付ける必要があり、新しいキー値。

コンテナー種類は、検索およびアプリケーションで必要な挿入の型に共通に基づきます。ハッシュされた連想コンテナーは、検索、挿入、削除操作のために最適化されています。メンバー関数し、明示的に処理をサポートする平均有効である定数にコンテナー内の要素数に依存しない、実行時にユーザーが適切にデザインされたハッシュ関数で使用された場合。優れた設計のハッシュ関数は独立したキー値が同じハッシュ値にマップされるとハッシュ値の一様分布を生成し、競合が発生すると呼ばれる競合の数を最小限にします。最悪の場合、最も悪く可能なハッシュ関数と、操作の数は、シーケンス (線形時間内の要素数に比例します。

hash_mapはキーと値を関連付ける条件が満たされたときにアプリケーションでオプションを連想コンテナー必要があります。この構造体の型のモデルを定義を提供する関連付けられた文字列値で一意に示すキーワードの順序付きリストです。代わりに、Wordに、複数の適切なシグネチャがある場合は、キーが一意ではないものとして、hash_multimapは、選択コンテナーです。一方、は、単語のリストだけが格納されている場合、hash_setは、適切なコンテナーです。Wordの複数の出現が許可された場合、hash_multisetは、適切なコンテナー構造です。

hash_mapは、クラス value_compareのハッシュ [Traits] に格納されたオブジェクトを呼び出して制御するシーケンスの順序を指定します。このメンバー関数は、格納されているオブジェクト key_compを呼び出すことによってアクセスできます。このような関数オブジェクトは、クラス hash_compare*<Key, less<Key>>*のオブジェクトと同様に動作する必要があります。具体的には、**[キー]**型のすべての値 _Key の場合、呼び出し [Traits] (_Key) は size_t型の値の分布を生成します。

通常、要素は上でのみ、あまりこの順序を設定することである必要があります: または (という意味でいずれも他より小さくない) 等しいことが、任意の2種類の要素は、いずれかの決定されるそのほか未満であること。これは、不一致要素間の順序で発生します。テクニカル ノートで、比較関数は、標準の数値は厳密弱順序を引き起こすバイナリ述語です。バイナリ述語 f (xY) は2個の引数のオブジェクトが true または falseのx半径と y、および戻り値を持つ関数オブジェクトです。hash_mapに適用される順序は2種類のオブジェクトが同等であるとx半径とyと、f (xy) 、および f (y) のx が falseで定義されている厳密な厳密にバイナリ述語がirreflexive称、オブジェクト、および中間かどうか、およびOrders等価性が中間の場合は。等価性、命令合計になるキーの置換の間の等価より強力な状態が (すべての要素が互いに関連する注文されるという意味で) と一致するキー互いindiscernibleです。

被制御シーケンスの要素の実際の順序はコンテナー オブジェクトに格納されているハッシュ テーブルのハッシュ関数、関数、および命令の現在のサイズによって決まります。ハッシュ テーブルの現在のサイズを特定できません。被制御シーケンスの要素の順序を予測ため、通常はできません。要素を挿入する反復子を無効にしない要素を削除し、削除した要素に明確に指定した反復子だけが無効になります。

hash_mapのクラスによって提供された反復子は、双方向反復子ですが、クラスのメンバー関数 挿入hash_map にテンプレート パラメーターとして機能の要件が双方向の反復子クラスによって保証されます。これらは最小限である、弱い入力反復子を受け取るバージョンがあります。さまざまな反復子の概念は、機能の調整に関連するファミリを形成します。各反復子の概念に条件の独自のセット、反復子の種類によって提供される要件にそれらを指定する必要の制限を前提として使用するアルゴリズムがあります。オブジェクトを参照するように入力反復子が逆参照される可能性があることが、シーケンスの次の反復子に増加する可能性があることを想定される場合があります。これは、最小限の機能ですが、クラスのメンバー関数のコンテキストで反復子 _First、[_Last) の範囲について有意に話せますには十分です。

Visual C++ .NET 2003では、<hash_map><hash_set> ヘッダー ファイルのメンバーはstdの名前空間に存在しなくなりましたが、ではなくstdextの名前空間に型。詳細については、「The stdext Namespace」を参照してください。

0d462wfh.collapse_all(ja-jp,VS.110).gifコンストラクター

hash_map

を構築します hash_map 空の場合、または他に、hash_mapの全体または一部のコピーである。

0d462wfh.collapse_all(ja-jp,VS.110).gifTypedef

allocator_type

hash_map のオブジェクトの allocator のクラスを表す型。

const_iterator

hash_mapの const の要素を読み取ることができる双方向反復子を提供する型。

const_pointer

hash_mapの const の要素へのポインターを提供する型。

const_reference

const の要素への参照を提供する型は const 操作を読み取りと操作実行のために格納されている hash_map

const_reverse_iterator

hash_mapの const の要素を読み取ることができる双方向反復子を提供する型。

difference_type

要素間の範囲の hash_map の要素数を表すことができる符号付き整数型は、反復子が指す。

iterator

読み取ることができるか、または hash_mapの要素を変更する双方向反復子を提供する型。

key_compare

hash_mapの要素は2個の相対位置を決定するディレクティブには、2とおりの並べ替えキーを比較できる関数オブジェクトを提供する型。

key_type

型は hash_mapの各要素を構成する並べ替えキー オブジェクトを表します。

mapped_type

データ型を表す型は hash_mapに格納されている

ポインター

hash_mapの要素へのポインターを提供する型。

参照

要素への参照を提供する型は hash_mapに格納されている

reverse_iterator

読み取り可能であり、逆順の hash_mapの要素を変更する双方向反復子を提供する型。

size_type

hash_mapの要素数を表すことができる符号なし整数の型。

value_type

hash_mapディレクティブの相対位置を特定するために、並べ替えキーとして2個の要素を比較できる関数オブジェクトを提供する型。

0d462wfh.collapse_all(ja-jp,VS.110).gifメンバー関数

hash_map::at

指定されたキー値を持つ hash_map の要素を検索します。

begin

hash_mapの最初の要素を指定する反復子を返します。

hash_map::cbegin

hash_mapの最初の要素を指す定数反復子を返します。

hash_map::cend

hash_mapに最後の要素の次の場所を指す定数反復子を返します。

clear

hash_mapのすべての要素を消去します。

count

キーがパラメーター指定したキーに一致する hash_map の要素数を返します。

hash_map::crbegin

逆順の hash_mapの最初の要素を指す定数反復子を返します。

hash_map::crend

逆順の hash_mapに最後の要素の次の場所を指す定数反復子を返します。

hash_map::emplace

hash_mapに構築された要素を挿入します。

hash_map::emplace_hint

配置ヒントを含む hash_mapに、構築された要素を挿入します。

empty

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

End

hash_mapに最後の要素の次の場所を指定する反復子を返します。

equal_range

反復子のそれぞれ、指定したキー、キーの hash_map の最初の要素への参照と、キー、キーの hash_map の最初の要素へのペアを返します。

消去する

指定した位置から hash_map の要素または要素範囲を削除します

find

指定したキーと同じキーを持つ hash_map の要素の位置を指定する反復子を返します。

get_allocator

hash_mapの構築に使用される allocator オブジェクトのコピーを返します。

挿入

hash_mapに要素または要素範囲を挿入します。

key_comp

その以内で指定されたキーよりも大きいキー値を持つ hash_map の最初の要素への反復子を返します。

lower_bound

その以内で指定されたキーよりも大きいキー値を持つ hash_map の最初の要素への反復子を返します。

max_size

hash_mapの最大長を返します。

rbegin

逆順の hash_mapの最初の要素を指定する反復子を返します。

rend

逆順の hash_mapに最後の要素の次の場所を指定する反復子を返します。

size

hash_mapの要素数を返します。

swap

2 hash_map、.の要素を交換します。

upper_bound

指定したキーよりも大きいキー値と hash_map の最初の要素への反復子を返します。

value_comp

hash_mapで使用されている順序の要素の値の比較のオブジェクトのコピーを取得します。

0d462wfh.collapse_all(ja-jp,VS.110).gif演算子

operator[]

指定されたキー値を持つ hash_map に要素を挿入します。

hash_map::operator=

別の hash_mapのコピーと hash_map の要素を置き換えます。

必要条件

ヘッダー: <hash_map>

名前空間: のstdext

参照

関連項目

C++ の標準ライブラリのスレッド セーフ

標準テンプレート ライブラリ

その他の技術情報

<hash_map> メンバー

hash_map のメンバー