共用方式為


hash_compare 類別

樣板類別描述可以由任何雜湊相關容器的物件— hash_map、hash_multimap、hash_set 或 hash_multiset 用來—做為預設 Traits 參數物件排序和雜湊項目所包含。

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;
   };

備註

每個雜湊相關容器儲存雜湊特性物件型別 ( Traits 樣板參數)。 您可以從 hash_compare 的特製化衍生類別選擇性覆寫某些函式和物件,也可以提供這個類別是您的版本,如果符合某些最低需求。 具體來說,對於型別 **hash_compare<Key, Traits>**物件 hash_comp,下列行為由上述容器是必要的:

  • 對於型別 Key的所有值 _Key ,呼叫 hash_comp(_Key) 做為雜湊函式,產生型別 size_t的值發行。 hash_compare 提供的函式會傳回 _Key。

  • 對於型別 Key 的所有值在序列之 _Key2 之前並具有相同雜湊值的 _Key1 (雜湊函式傳回的值), hash_comp(_Key2, _Key1) 是錯誤的。 函式必須加上一總定序給型別 Key的值。 hash_compare 提供的函式傳回 comp(_Key2, _Key1),comp 是型別 Traits 的地方預存物件可指定何時建構物件 hash_comp。 對於預設的 Traits 參數型別 less<Key>,排序鍵會減少值。

  • 整數常數 bucket_size 指定項目的平均數量每個「容器應該嘗試不超過的 Bucket」(Hashtable 輸入)。 它必須大於零。 hash_compare 提供的值是 4。

  • 整數常數 min_buckets 在雜湊表指定 Bucket 數目下限維護。 它必須是二的次方和大於零。 hash_compare 提供的值是 8。

在 Visual C++ .NET 2003 中, <hash_map><hash_set> 標頭檔的成員不在 std 命名空間中,而是移至 stdext 命名空間。 如需詳細資訊,請參閱 stdext 命名空間

範例

hash_map::hash_maphash_multimap::hash_multimaphash_set::hash_sethash_multiset::hash_multiset參閱範例,以及如何宣告和使用 hash_compare 為例。

需求

標頭檔: <hash_map>

**命名空間:**stdext

請參閱

參考

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

標準樣板程式庫

其他資源

<hash_map> 成員

<hash_set> 成員