名前付き要件: Hash
提供: cppreference.com
Hash は、出力が入力のみに依存し、異なる入力値が与えられたとき同じ出力を生成する確率が非常に低い、関数オブジェクトです。
[編集] 要件
以下の内容を満たす場合、型 T
は Hash を満たします。
- 型
T
が FunctionObject、 CopyConstructible、 Destructible の要件を満たし、
さらに、
- 引数型が
Key
であるT
またはconst T
型の値h
-
Key
またはconst Key
に変換可能な値k
-
Key
型の左辺値式u
が与えられたとき、以下の式が有効でなければならず、指定された効果を持たなければなりません。
式 | 戻り値の型 | 要件 |
---|---|---|
h(k) | std::size_t
|
返される値はプログラムの生存期間に対して (C++14以上) k の値にのみ依存する。
プログラムの特定の実行において実行される (C++14以上)すべての h(k) の評価は同じ a!=b の場合に h(a)==h(b) である確率は 1.0/std::numeric_limits<std::size_t>::max() に近いべきである。 |
h(u) | std::size_t
|
u は変更されない。
|
[編集] 標準ライブラリ
std::hash |