Combinaison de valeurs de hachage en C 0x
C 0x introduit la fonction hash<...>(), fournissant une approche standardisée pour calculer les valeurs de hachage pour différents types de données. Cependant, il lui manquait initialement une fonction hash_combine similaire à celle trouvée dans Boost.
Pour résoudre ce problème, les développeurs de Boost suggèrent une implémentation simple qui reflète la leur :
template <class T> inline void hash_combine(std::size_t& seed, const T& v) { std::hash<T> hasher; seed ^= hasher(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); }
Cette fonction est efficace combine la valeur de hachage d'une valeur d'entrée v avec la graine existante. L'addition, les opérations XOR et le décalage aident à répartir uniformément les bits des valeurs de hachage, ce qui entraîne une distribution de hachage plus robuste et plus uniforme.
En incorporant cette fonction dans votre code C 0x, vous pouvez combiner de manière transparente les valeurs de hachage. et bénéficiez des avantages du calcul standardisé de la valeur de hachage fourni par le langage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!