hash_multiset Class
[!メモ]
この API は、互換性のために残されています。代わりに unordered_multiset クラスです。
コンテナー クラスのhash_multisetは、標準テンプレート ライブラリの拡張機能に含まれるキー値として、要素の値が使用される使用され、一意である必要はありませんコレクションのデータの格納とクイック検索の場合は。
template <
class Key,
class Traits=hash_compare<Key, less<Key> >,
class Allocator=allocator<Key>
>
class hash_multiset
パラメーター
Key
hash_multisetに格納される要素のデータ型。Traits
2個の関数オブジェクトを含む型、相対位置ディレクティブと型 size_tの符号なし整数、要素のキー値を割り当てる単項の述語であるハッシュ関数を判断するには、並べ替えキーとして2要素の値を比較する、バイナリ述語であるクラスの1は比較します。このオプションを省略すると、hash_compareの*<Key、less<Key> は>* 既定値です。Allocator
hash_multisetのメモリの割り当てと解放に関する詳細をカプセル化する、格納されたアロケーター オブジェクトを表す型。このオプションを省略すると、既定値は allocator*<Key>*です。
解説
hash_multisetは次のとおりです:
サポートする可変サイズのコンテナーが関連するキー値に要素の値の有効な検索基づいて、連想コンテナー。さらに、要素の値がキー値であるため、単純な連想コンテナーです。
要素にアクセスするには、双方向反復子を提供するため、実行する。
要素が要素のキー値に適用されたハッシュ関数の値に基づいてバケットにグループ化されるため、ハッシュ。
要素に一意キーを持つ必要があるという意味で一意です。hash_multisetは、単純な連想コンテナーであるため、要素も一意です。
用意されている機能、テンプレートのクラスはジェネリック、要素またはキーとして含まれるデータの種類とは無関係です。代わりに要素とキーに使用するデータ型は比較関数とアロケーターとともにクラス テンプレートのパラメーターとして指定されます。
並べ替えのハッシュの主な利点はより効率です: 正常なハッシュはコンテナー要素の数値の対数に比例した並べ替え手法の時刻と比較して定数平均時間に挿入、削除、および検索を実行します。セット内の要素の値を直接変更することはできません。代わりに、古い値を削除し、新しい値を持つ要素を挿入する必要があります。
コンテナー種類は、検索およびアプリケーションで必要な挿入の型に共通に基づきます。ハッシュされた連想コンテナーは、検索、挿入、削除操作のために最適化されています。メンバー関数し、明示的に処理をサポートする平均有効である定数にコンテナー内の要素数に依存しない、実行時にユーザーが適切にデザインされたハッシュ関数で使用された場合。優れた設計のハッシュ関数は独立したキー値が同じハッシュ値にマップされるとハッシュ値の一様分布を生成し、競合が発生すると呼ばれる競合の数を最小限にします。最悪の場合、最も悪く可能なハッシュ関数と、操作の数は、シーケンス (線形時間内の要素数に比例します。
hash_multisetはキーと値を関連付けるアプリケーションによって条件が満たされた場合にオプションを連想コンテナー必要があります。hash_multisetの独自の並べ替えキーとして複数および機能であるキーは一意ではありません。この構造体の型のモデルは、Wordが何度も発生する可能性がある単語を順序付けた一覧です。Wordの複数の出現が適用されませんでした、hash_setは、適切なコンテナーに構造体。一意のシグネチャが一意なキーワードの一覧への値としてアタッチされている場合は、hash_mapは、このデータを含む適切な構造です。代わりに定義が一意でない場合、hash_multimapは、選択コンテナーです。
hash_multisetは、型の value_compare格納されているハッシュの特性でオブジェクトの呼び出しによって制御されるシーケンスの順序を指定します。このメンバー関数は、格納されているオブジェクト key_compを呼び出すことによってアクセスできます。このような関数オブジェクトはクラスの hash_compareの*<Key、less<Key> >*のオブジェクトと同様に動作する必要があります。具体的には、と **[キー]**型のすべての値の Key 、呼び出し [特徴] (Key) は size_t型の値の分布を生成します。
通常、要素は上でのみ、あまりこの順序を設定することである必要があります: または (という意味でいずれも他より小さくない) 等しいことが、任意の2種類の要素は、いずれかの決定されるそのほか未満であること。これは、不一致要素間の順序で発生します。テクニカル ノートで、比較関数は、標準の数値は厳密弱順序を引き起こすバイナリ述語です。バイナリ述語 f (xのy) は2個の引数オブジェクトがtrueまたはfalseのx半径とy、および戻り値を持つ関数オブジェクトです。hash_multisetに適用される順序は2種類のオブジェクトが同等であるとx半径とyと、f (x、y) 、および f (y) の x が false で定義されている厳密な厳密にバイナリ述語がirreflexive称、オブジェクト、および中間かどうか、およびOrders等価性が中間の場合は。等価性、命令合計になるキーの置換の間の等価より強力な状態が (すべての要素が互いに関連する注文されるという意味で) と一致するキー互いindiscernibleです。
被制御シーケンスの要素の実際の順序はコンテナー オブジェクトに格納されているハッシュ テーブルのハッシュ関数、関数、および命令の現在のサイズによって決まります。ハッシュ テーブルの現在のサイズを特定できません。被制御シーケンスの要素の順序を予測ため、通常はできません。要素を挿入する反復子を無効にしない要素を削除し、削除した要素に明確に指定した反復子だけが無効になります。
hash_multisetのクラスによって提供された反復子は、双方向反復子ですが、クラスのメンバー関数 挿入 と hash_multiset にテンプレート パラメーターとして機能の要件が双方向の反復子クラスによって保証されます。これらは最小限である、弱い入力反復子を受け取るバージョンがあります。さまざまな反復子の概念は、機能の調整に関連するファミリを形成します。各反復子の概念、条件の独自のhash_multiset、反復子の種類によって提供される要件にそれらを指定する必要の制限を前提として使用するアルゴリズムがあります。オブジェクトを参照するように入力反復子が逆参照される可能性があることが、シーケンスの次の反復子に増加する可能性があることを想定される場合があります。これは、機能の最小hash_multisetいますが、クラスのメンバー関数のコンテキストで反復子 [_First、_Last) の範囲について有意に話せますには十分です。
Visual C++ .NET 2003では、<hash_map> と <hash_set> ヘッダー ファイルのメンバーはstdの名前空間に存在しなくなりましたが、ではなくstdextの名前空間に型。詳細については、「The stdext Namespace」を参照してください。
コンストラクター
を構築します hash_multiset 空の場合、または他に、hash_multisetの全体または一部のコピーである。 |
Typedef
hash_multiset のオブジェクトの allocator のクラスを表す型。 |
|
hash_multisetの const の要素を読み取ることができる双方向反復子を提供する型。 |
|
hash_multisetの const の要素へのポインターを提供する型。 |
|
const の要素への参照を提供する型は const 操作を読み取りと操作実行のために格納されている hash_multiset |
|
hash_multisetの const の要素を読み取ることができる双方向反復子を提供する型。 |
|
同じ hash_multiset内の要素を指定する2反復子の差を提供する符号付き整数の型。 |
|
読み取ることができるか、または hash_multisetの要素を変更する双方向反復子を提供する型。 |
|
hash_multisetの要素は2個の相対位置を決定するディレクティブには、2とおりの並べ替えキーを比較できる関数オブジェクトを提供する型。 |
|
hash_set の要素として並べ替えキーとして、容量が格納されているオブジェクトを表す型。 |
|
hash_multisetの要素へのポインターを提供する型。 |
|
要素への参照を提供する型は hash_multisetに格納されている |
|
読み取り可能であり、逆順の hash_multisetの要素を変更する双方向反復子を提供する型。 |
|
hash_multisetの要素数を表すことができる符号なし整数の型。 |
|
2個の関数オブジェクトを提供する型、相対位置ディレクティブと要素のハッシュ単項の述語を確認するに hash_multiset の2種類の要素の値を比較できるクラスのバイナリ述語は比較します。 |
|
hash_multiset の要素として値として、容量が格納されているオブジェクトを表す型。 |
メンバー関数
hash_multisetの最初の要素を指定する反復子を返します。 |
|
hash_multisetの最初の要素を指す定数反復子を返します。 |
|
hash_multisetに最後の要素の次の場所を指す定数反復子を返します。 |
|
hash_multisetのすべての要素を消去します。 |
|
キーがパラメーター指定したキーに一致する hash_multiset の要素数を返します |
|
逆順の hash_multisetの最初の要素を指す定数反復子を返します。 |
|
逆順の hash_multisetに最後の要素の次の場所を指す定数反復子を返します。 |
|
hash_multisetに構築された要素を挿入します。 |
|
配置ヒントを含む hash_multisetに、構築された要素を挿入します。 |
|
hash_multiset が空かどうかをテストします。 |
|
hash_multisetに最後の要素の次の場所を指定する反復子を返します。 |
|
指定したキー、キーの hash_multiset の最初の要素と等しい、より大きいキーまたはキーの hash_multiset の最初の要素のペアの各反復子を返します。 |
|
hash_multiset の要素または要素範囲を指定位置から削除するか、指定したキーに一致する要素を削除します。 |
|
指定したキーと同じキーを持つ hash_multiset の要素の位置を指定する反復子を返します。 |
|
hash_multisetの構築に使用される allocator オブジェクトのコピーを返します。 |
|
hash_multisetに要素または要素範囲を挿入します。 |
|
hash_multisetで使用されている順序のキーに比較オブジェクトのコピーを取得します。 |
|
その以内で指定されたキー、キーの hash_multiset の最初の要素への反復子を返します。 |
|
hash_multisetの最大長を返します。 |
|
逆順の hash_multisetの最初の要素を指定する反復子を返します。 |
|
逆順の hash_multisetに最後の要素の次の場所を指定する反復子を返します。 |
|
hash_multisetの要素数を返します。 |
|
2 hash_multiset、.の要素を交換します。 |
|
その以内で指定されたキー、キーと hash_multiset の最初の要素への反復子を返します。 |
|
ハッシュの特性のコピーを取得します hash_multisetの要素のキー値をハッシュ化、並べ替えに使用される取得します。 |
演算子
別の hash_multisetのコピーと hash_multiset の要素を置き換えます。 |
必要条件
ヘッダー: <hash_set>
名前空間: のstdext