次の方法で共有


hash_compare Class

このテンプレート クラスは含む要素を並べ替えハッシュするためハッシュ連想コンテナーのいずれか。hash_maphash_multimaphash_setまたは hash_multiset して既定の 特性 のオブジェクトをパラメーターとして使用できるオブジェクトを表します。

template<class Key, class Traits = less<Key> >
   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;
   };

解説

各ハッシュから左 特性 コンテナー型はテンプレート パラメーター) のハッシュの特性でオブジェクトを保存します。hash_compare の特殊化から選択して特定の関数およびオブジェクトをオーバーライドするクラスを取得できます。また特定の最小要件を満たすこのクラスで独自のバージョンを指定できます。具体的には型 hash_compare <Key, Traits> のオブジェクトの hash_comp には次の動作が上のコンテナーを指定する必要があります :

  • キー 型のすべての値 _Key の場合呼び出し hash_comp_Key() は size_t 型の値の分布を生成するハッシュ関数として機能します。hash_compare によって関数は _Key を返します。

  • キー の各値のシーケンス _Key2 前に記述し同じハッシュ値 (ハッシュ関数によって返される値) である _Key1 についてはhash_comp(_Key2_Key1) は false です。関数は型の値に キー 合計命令を課さなければ必要があります。hash_compare によって関数はオブジェクトの hash_comp を生成するときに指定できます。comp が特性 に格納されたオブジェクトである場合に comp(_Key2_Key1) を , 返します。既定の 特性 のパラメーターの型 より小さい <Key> では並べ替えキーは値では減りません。

  • 整数定数 bucket_size はコンテナーがを超えないようにする必要がある 「」のバケットごとの平均要素数を指定します (ハッシュ テーブルのエントリ)。これはゼロより大きい数。hash_compare から渡された値は 4. です。

  • 整数定数 min_buckets がハッシュ テーブルに保持する最小バケット数を指定します。ここでは2 の累乗と非常に大きい値である必要があります。hash_compare から渡された値は 8. です。

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

使用例

hash_map:: hash_maphash_multimap:: hash_multimaphash_set:: hash_set と hash_compare を宣言および使用する方法の例についてはhash_multiset:: hash_multiset の例は" " を参照してください。

必要条件

ヘッダー : <hash_map>

名前空間 : stdext

参照

関連項目

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

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

その他の技術情報

<hash_map> メンバー

<hash_set> メンバー