命名空间
变体
操作

C++ 命名要求: 哈希 (自 C++11 起)

来自 cppreference.com
 
 
C++ 命名要求
 

一个 哈希 是一个函数对象,其输出仅取决于输入,并且在给定不同的输入值的情况下产生相同输出的概率非常低。

[编辑] 要求

如果类型 T 满足 哈希,则

给定

  • h,类型 Tconst T 的值,其参数类型为 Key
  • k,可转换为 Keyconst Key 的值,
  • u,类型 Key左值 表达式。

以下表达式必须有效,并具有其指定的效果。

表达式 返回类型 要求
h(k) std::size_t 返回的值仅取决于程序执行期间 k 的值。

在程序的给定执行中执行的所有 h(k) 评估对于 k 的相同值产生相同的结果。

对于 a != bh(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 对于相同参数的所有情况都要求相同的结果 仅在单个执行中要求