原文转自:http://zh.cppreference.com/w/cpp
在头文件
<functional> 中定义
|
||
template<class Key > struct hash;// not defined |
(C++11 起) | |
哈希模板定义一个函数对象,实现了散列函数。这个函数对象的实例定义一个operator()
1。接受一个参数的类型Key
.
2。返回一个类型为size_t的值,表示该参数的哈希值.
3。调用时不会抛出异常.
4。若两个参数k1
k2
相等,则std::hash<Key>()(k1)== std::hash<Key>()(k2).
5。若两个不同的参数k1
k2
不相等,则std::hash<Key>()(k1)== std::hash<Key>()(k2)成立的概率应非常小,接近1.0/std::numeric_limits<size_t>::max().
哈希模板是CopyConstructible
和Destructible
.
的无序关联式容器std::unordered_set,std::unordered_multiset,std::unordered_map,std::unordered_multimap使用专业的模板std::hash默认的散列函数.
[编辑]会员类型
argument_type |
Key |
result_type |
std::size_t |
[编辑]成员函数
构造一个哈希函数对象
原文:
constructs a hash function object
(公共成员函数) |
|
计算哈希的说法
原文:
calculate the hash of the argument
(公共成员函数) |
[编辑]标准的专业基本类型
在头文件
<functional> 中定义
|
||
template<>struct hash<bool>; template<>struct hash<char>; |