C++ 命名要求: 哈希 (自 C++11 起)
来自 cppreference.com
一个 哈希 是一个函数对象,其输出仅取决于输入,并且在给定不同的输入值的情况下产生相同输出的概率非常低。
[编辑] 要求
如果类型 T
满足 哈希,则
给定
- 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++ 标准。
DR | 应用于 | 发布时的行为 | 正确行为 |
---|---|---|---|
LWG 2291 | C++11 | 对于相同参数的所有情况都要求相同的结果 | 仅在单个执行中要求 |