hash_compare クラス
クラス テンプレートは、任意のハッシュ連想コンテナー (hash_map、hash_multimap、hash_set、hash_multiset) によって使用可能なオブジェクトを示しています。既定では Traits パラメーター オブジェクトを使用して、含まれる要素の順序付けとハッシュを行います。
構文
class hash_compare
{
Traits comp;
public:
const size_t bucket_size = 4;
const size_t min_buckets = 8;
hash_compare();
hash_compare(Traits pred);
size_t operator()(const Key& key) const;
bool operator()(
const Key& key1,
const Key& key2) const;
};
解説
各ハッシュ連想コンテナーは、Traits
型のハッシュ特性オブジェクト (テンプレート パラメーター) を格納します。 特定の関数とオブジェクトを選択的にオーバーライドするために hash_compare を特殊化してクラスを派生させるか、特定の最小要件を満たしているこのクラスの独自のバージョンを使用することができます。 具体的には、hash_compare<Key, Traits>
型のオブジェクト hash_comp について、上記のコンテナーで次の動作が必要です。
Key
型のすべての値key
について、呼び出し hash_comp(key
) はハッシュ関数として機能し、size_t
型の値の分布を生成します。 hash_compare によって提供される関数はkey
を返します。並べ替え順序において
key2
の前になる、同じハッシュ値 (ハッシュ関数によって返される値) を持つKey
型の任意の値key1
について、hash_comp(key2
、key1
) は false になります。 関数は、Key
型の値の完全な順序付けを強制する必要があります。 hash_compare によって提供される関数は comp(key2
、key1
),
を返します。ここで、comp はTraits
型の格納されているオブジェクトを示し、オブジェクト hash_comp を構築する際に指定できます。 既定のTraits
パラメーター型less<Key>
について、並べ替えキーの値が減少することはありません。整数の定数
bucket_size
は、コンテナーが超えるべきでない、「バケット」(ハッシュ テーブルのエントリ) ごとの要素の平均数を指定します。 0 より大きくなければなりません。 hash_compare によって提供される値は 4 です。整数の定数
min_buckets
は、ハッシュ テーブルに保持するバケットの最小数を指定します。 2 の累乗で、0 より大きくなければなりません。 hash_compare によって提供される値は 8 です。
例
hash_compare の宣言方法や使用方法の例については、hash_map::hash_maphash_multimap::hash_multimaphash_set::hash_setおよび hash_multiset::hash_multiset の例をご覧ください。
要件
ヘッダー:<hash_map>
名前空間: stdext