¿Cómo hash correctamente la estructura personalizada?
En el lenguaje C ++ está la plantilla de función hash predeterminadastd::hash<T>
Para los tipos más simples, comostd::string
, int
Supongo que estas funciones tienen una buena entropía y que la distribución de variables aleatorias correspondiente es estadísticamente uniforme. Si no lo es, entonces vamos a fingir que lo es.
Entonces, tengo una estructura:
struct CustomType {
int field1;
short field2;
string field3;
// ...
};
Quiero hacer hash, usando hashes separados de algunos de sus campos, por ejemplo,std::hash(field1)
ystd::hash(field2)
. Ambos hashes están en un conjunto de valores posibles del tiposize_t
.
¿Qué es una buena función hash, que puede combinar ambos resultados y mapearlos de nuevo asize_t
?