hash_compare 类

描述模板类可由任何哈希与容器的对象 (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_compare<Key, Traits>**对象,hash_comp 以下行为由上述容器是必需的:

  • 对于所有 _Key 值 类型,调用 hash_comp(_Key) 用作哈希函数,产生值分配类型 size_t。 hash_compare 提供的函数返回 _Key。

  • 对于任何值位于序列中的 _Key2 并具有相同的哈希值的 _Key1 类型 (哈希函数返回的值),hash_comp(_Key2,_Key1) 是 false。 函数必须对订单的总额。值 类型。 hash_compare 提供的函数返回 comp(_Key2,_Key1),comp特征 类型的地方。存储的对象可以指定要在构造对象 hash_comp。 对于 特征 类型,默认参数 **less<Key>**类键再减小。值。

  • 整型常数 bucket_size 指定元素的数量平均每个“容器应尽量不超过的存储桶”(Hashtable 输入)。 比必须大于零。 hash_compare 提供的 . 的值为 4。

  • 整型常数 min_buckets 哈希表存储在指定的最小值和维护。 它必须是的和大于零。 hash_compare 提供的 . 的值为 8。

在Visual C++ .NET 2003中,成员<hash_map><hash_set> 头文件不再在std命名空间,而是已经进入了stdext命名空间。 有关更多信息,请参见 stdext 命名空间

示例

为、、hash_map::hash_maphash_multimap::hash_multimaphash_set::hash_set和示例,请参见 hash_multiset::hash_multiset说明如何声明和使用 hash_compare 作为示例。

要求

标头: <hash_map>

**命名空间:**stdext

请参见

参考

C++ 标准库中的线程安全

标准模板库

其他资源

hash_map 成员

hash_set 成员