Espacios de nombres
Variantes
Acciones

Requisitos denominados de C++: Hash (desde C++11)

De cppreference.com
< cpp‎ | named req
 
 
Requisitos denominados de C++
Números aleatorios
Concurrencia
(C++11)
(C++11)
Rangos
Vista multidimensional
Otros

 

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:

Dados

  • h, un valor de tipo T o const T, cuyo tipo de argumento es Key,
  • k, un valor de tipo convertible a Key o const Key,
  • u, una expresión l-valor de tipo Key.

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]

[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