原文轉自: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>; |