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_map 和 hash_set 中,以及向后兼容的标题 hash_map.h 和 hash_set.h 中。此类是 SGI 扩展;它不是 C++ 标准的一部分。模板参数
| 参数 |
描述 |
默认值 |
|
T
|
参数类型。也就是说,要哈希的对象的类型。 |
|
模型
哈希函数
类型要求
T必须是已定义了其特化的类型hash。STL 定义了以下特化:
-
char*
-
const char*
-
crope
-
wrope
-
char
-
signed char
-
unsigned char
-
short
-
unsigned short
-
int
-
unsigned int
-
long
-
unsigned long
公共基类
无。成员
| 成员 |
定义位置 |
描述 |
|
size_t operator()(const T& x)
|
哈希函数
|
返回值x的哈希值。 |
新成员
所有hash的成员都定义在 哈希函数 要求中。Hash不引入任何新成员。注释
[1] 从技术上讲,这意味着实际的模板hash<T>是一个空类;成员函数operator()仅在各种特化中定义。
另请参阅
哈希关联容器,哈希函数
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。
商标信息