C++ 命名要求: 哈希 (Hash) (自 C++11 起)
来自 cppreference.cn
一个 哈希 (Hash) 是一个函数对象,其输出仅取决于输入,并且对于不同的输入值产生相同输出的概率非常低。
[编辑] 要求
类型 T
满足 哈希 (Hash),如果
给定
- h,类型为
T
或const T
的值,其参数类型为Key
, - k,类型可转换为
Key
或 const Key 的值, - u,类型为
Key
的左值表达式。
以下表达式必须有效并具有其指定的效果。
表达式 | 返回类型 | 要求 |
---|---|---|
h(k) | std::size_t | 返回的值在程序执行期间仅取决于 k 的值。 在给定程序执行中,所有执行的 h(k) 求值对于相同的值 k 产生相同的结果。 对于 a != b,h(a) == h(b) 的概率应接近 1.0 / std::numeric_limits<std::size_t>::max()。 |
h(u) | std::size_t | u 未被修改。 |
[编辑] 标准库
(C++11) |
哈希函数对象 (类模板) |
[编辑] 缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
缺陷报告 | 应用于 | 发布时的行为 | 正确的行为 |
---|---|---|---|
LWG 2291 | C++11 | 在所有情况下都要求相同的参数产生相同的结果 | 仅在单次执行中要求 |