Share via


hash_compare Class

樣板類別描述可供任何雜湊關聯容器的物件 — hash_map,hash_multimap,hash_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_comp hash_compare < 金鑰、 特性 >,以下行為模式所需的最上面的容器:

  • 所有值_Key型別的機碼,呼叫 hash_comp(_Key) 做為雜湊,該函數將產生的散發型別的值 size_t。 Hash_compare 所提供的函式會傳回_Key。

  • 任何值_Key1型別的機碼 ,之前_Key2的順序和具有相同雜湊值 (值傳回雜湊函式), hash_comp(_Key2, _Key1) 為 false。 此函式必須加上型別的值上排序總計機碼。 Hash_compare 所提供的函式會傳回 comp(_Key2, _Key1), , comp 是一種預存的物件型別的特性您可以指定當您建構物件的 hash_comp。 預設值為特性 參數型別 較少的 <Key>,排序鍵永遠不會降低。

  • 整數常數 bucket_size 指定 「 桶 」 (雜湊表項目) 的容器應盡量不要超過每項目的平均數量。 它必須是大於零。 提供 hash_compare 的值為 4。

  • 整數常數 min_buckets 指定在雜湊資料表中維護的雜湊桶的最小數目。 它必須為 2,以及大於零。 提供 hash_compare 的值為 8。

在 Visual C++。NET 2003 中,成員的 <hash_map><hash_set> 標頭檔將不再以標準的命名空間,但是相當均已移至 stdext 命名空間。 如需詳細資訊,請參閱 stdext 命名空間

範例

請參閱範例 hash_map::hash_maphash_multimap::hash_multimaphash_set::hash_set,以及 hash_multiset::hash_multiset,如需如何宣告和使用 hash_compare 的範例。

需求

標頭: <hash_map>

Namespace: stdext

請參閱

參考

在標準 C++ 程式庫中的執行緒安全

標準樣板程式庫

其他資源

<hash_map> 成員

<hash_set> 成員