Question

La boost::hash_combine La fonction de modèle prend une référence à un hachage (appelé seed) et un objet v. Selon le docs, il combine seed avec le hachage de v par

seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);

Je peux voir que c'est déterministe. Je vois pourquoi un XOR est utilisé.

Je parie que l'ajout aide à cartographier des valeurs similaires largement séparées, de sorte que sonder les tables de hachage ne se décomposera pas, mais quelqu'un peut-il expliquer quelle est la constante magique?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top