C++ named requirements: Hash (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一个 哈希 函数对象,其输出仅取决于输入,并且在给定不同输入值时产生相同输出的概率极低。
需求
当类型
T
满足
Hash
条件时
-
类型
T满足 FunctionObject 、 CopyConstructible 、 Destructible 以及
给定
-
h
,类型为
T或const T的值,其参数类型为Key, -
k
,可转换为
Key或 const Key 类型的值, -
u
,类型为
Key的 左值 表达式。
以下表达式必须有效且具有其指定效果。
| 表达式 | 返回类型 | 要求 |
|---|---|---|
| h ( k ) | std::size_t |
返回值在程序运行期间仅取决于
k
的值。
在同一程序执行过程中,对相同 k 值的所有 h ( 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 | 要求所有情况下相同参数必须产生相同结果 | 仅要求在单次执行过程中保持一致 |