¿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, intSupongo 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?

Respuestas a la pregunta(2)

Su respuesta a la pregunta