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_compareKey, Traits对象 hash_comp,以下行为由上述容器是必需的:

  • 对类型 的任何值 _Key ,调用 hash_comp(_Key) 用作哈希函数,给定类型 size_t的值分布。 hash_compare 提供的函数返回 _Key。

  • 对于类型 的所有值的前面放置一个序列的 _Key2 和具有相同的哈希值进行 _Key1 (哈希函数返回的值), hash_comp(_Key2, _Key1) 是错误的。 函数必须施加了一个总排序的类型 的值。 hash_compare 提供的函数返回 comp(_Key2, _Key1),comp 是类型 特征 的位置一个单元的对象可以指定要在构造对象 hash_comp。 对于默认 特征 参数类型 小于Key,不要排序关键字减小值。

  • 整型常数 bucket_size 指定元素的数量平均每个 “容器应尽量不超过的存储桶” (hashtable 项)。 它比零输入到。 hash_compare 提供的值是 4。

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

在 Visual C++ .NET 2003 中, hash_maphash_set 头文件的成员中不再标准,命名空间,而是将 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 成员