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.
Requisitos
El tipo T satisface a Hash si:
- El tipo
Tsatisface a FunctionObject, CopyConstructible, Destructible, y
Dados
h, un valor de tipoToconst T, cuyo tipo de argumento esKey,k, un valor de tipo convertible aKeyoconst 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 La probabilidad de |
h(u)
|
std::size_t | u no se modifica.
|
Biblioteca estándar
(C++11) |
Objeto función de dispersión (hash). (plantilla de clase) |
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 |