C++ named requirements: Hash (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Un Hash es un objeto función para el cual la salida depende únicamente de la entrada y tiene una probabilidad muy baja de producir la misma salida dados diferentes valores de entrada.
Requisitos
El tipo
T
satisface
Hash
si
-
El tipo
Tsatisface FunctionObject , CopyConstructible , Destructible , y
Dado
-
h
, un valor de tipo
Toconst T, cuyo tipo de argumento esKey, -
k
, un valor de tipo convertible a
Keyo const Key , -
u
, una expresión
lvalue
de tipo
Key.
Las siguientes expresiones deben ser válidas y tener sus efectos especificados.
| Expresión | Tipo de retorno | Requisitos |
|---|---|---|
| h ( k ) | std::size_t |
El valor retornado depende únicamente del valor de
k
durante la duración del programa.
Todas las evaluaciones de h ( k ) ejecutadas dentro de una ejecución dada de un programa producen el mismo resultado para el mismo valor de k . La probabilidad de h ( a ) == h ( b ) para a ! = b debe aproximarse a 1.0 / std:: numeric_limits < std:: size_t > :: max ( ) . |
| h ( u ) | std::size_t | u no es modificado. |
Biblioteca estándar
|
(C++11)
|
objeto función hash
(plantilla de clase) |
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2291 | C++11 | se requerían mismos resultados para mismos argumentos en todos los casos | solo requerido dentro de una única ejecución |