Requisitos denominados de C++: Hash (desde C++11)
De cppreference.com
Una función de dispersión Hash es un objeto función para el cual la salida depende solo de la entrada y tiene una probabilidad muy baja de producir la misma salida dados diferentes valores de entrada.
[editar] Requisitos
El tipo T
satisface a Hash si:
- El tipo
T
satisface a FunctionObject, CopyConstructible, Destructible, y
Dados
-
h
, un valor de tipoT
oconst T
, cuyo tipo de argumento esKey
, -
k
, un valor de tipo convertible aKey
oconst Key
, -
u
, una expresión l-valor de tipoKey
.
Las siguientes expresiones deben ser válidas y tener sus efectos especificados:
Expresión | Valor de retorno | Requisitos |
---|---|---|
h(k) | std::size_t | El valor devuelto depende solo 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 dan el mismo resultado para el mismo valor de k. La probabilidad de h(a) == h(b) para a != b deberá aproximarse a 1.0/std::numeric_limits<std::size_t>::max(). |
h(u) | std::size_t | u no se modifica.
|
[editar] Biblioteca estándar
(C++11) |
Objeto función de dispersión (hash ). (plantilla de clase) |
[editar] Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
---|---|---|---|
LWG 2291 | C++11 | Se requerían los mismos resultados para los mismos argumentos en todos los casos. | Solo se requieren dentro de una sola ejecución |