SGI

hash<T>

类别: 容器,函子 组件类型: 类型

描述

函数对象hash<T>是一个 哈希函数;它被用作 STL 中所有 哈希关联容器 的默认哈希函数。

hash<T>模板仅针对以下类型的模板参数定义:char*, const char*, crope, wrope以及内置的整型类型。 [1] 如果您需要具有不同参数类型的哈希函数,则必须提供您自己的模板特化,或者使用其他哈希函数。

示例

int main()
{
  hash<const char*> H;
  cout << "foo -> " << H("foo") << endl;
  cout << "bar -> " << H("bar") << endl;
}

定义

定义在标题 hash_maphash_set 中,以及向后兼容的标题 hash_map.hhash_set.h 中。此类是 SGI 扩展;它不是 C++ 标准的一部分。

模板参数

参数 描述 默认值
T 参数类型。也就是说,要哈希的对象的类型。  

模型

哈希函数

类型要求

T必须是已定义了其特化的类型hash。STL 定义了以下特化:

公共基类

无。

成员

成员 定义位置 描述
size_t operator()(const T& x) 哈希函数 返回值x的哈希值。

新成员

所有hash的成员都定义在 哈希函数 要求中。Hash不引入任何新成员。

注释

[1] 从技术上讲,这意味着实际的模板hash<T>是一个空类;成员函数operator()仅在各种特化中定义。

另请参阅

哈希关联容器哈希函数
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 商标信息