次の方法で共有


hash_multimap Class

[!メモ]

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

コンテナー クラスのhash_multimapは、標準テンプレート ライブラリの拡張機能で、各要素が値が一意の必要はないと関連付けられたデータ値を持つ並べ替えキー ペアのコレクションからデータを格納およびクイック検索に使用されます。

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

パラメーター

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


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

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

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

解説

hash_multimapは次のとおりです:

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

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

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

  • 1種類のキー値は関連付けられている多くの要素のデータ値があるように、要素を一意キーである必要はないため、複数。

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

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

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

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

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

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

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

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

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

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

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

hash_multimap

特定のサイズまたは特定の値の要素または特定の allocator とそのほかのある hash_multimapのコピーとしてリストを構築します。

6ewecebk.collapse_all(ja-jp,VS.110).gifTypedef

allocator_type

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

const_iterator

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

const_pointer

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

const_reference

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

const_reverse_iterator

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

difference_type

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

iterator

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

key_compare

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

key_type

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

mapped_type

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

ポインター

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

参照

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

reverse_iterator

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

size_type

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

value_type

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

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

begin

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

hash_multimap::cbegin

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

hash_multimap::cend

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

clear

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

count

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

hash_multimap::crbegin

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

hash_multimap::crend

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

hash_multimap::emplace

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

hash_multimap::emplace_hint

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

empty

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

End

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

equal_range

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

消去する

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

find

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

get_allocator

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

挿入

指定した位置に hash_multimap に要素または要素範囲を挿入します。

key_comp

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

lower_bound

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

max_size

hash_multimapの最大長を返します。

rbegin

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

rend

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

size

hash_multimapの新しいサイズを指定します。

swap

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

upper_bound

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

value_comp

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

6ewecebk.collapse_all(ja-jp,VS.110).gif演算子

hash_multimap::operator=

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

必要条件

ヘッダー: <hash_map>

名前空間: のstdext

参照

関連項目

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

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

その他の技術情報

<hash_map> メンバー

hash_multimap のメンバー