C++ 命名要求: 雜湊 (Hash) (自 C++11 起)
來自 cppreference.com
一個 雜湊 (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 | 在所有情況下都要求相同的引數產生相同的結果 | 僅在單次執行中要求 |