La fonction par défaut provient de std :: hash. Je me demande s'il existe de meilleures fonctions de hachage pour économiser du temps de calcul? pour les clés entières ainsi que les clés de chaîne.Existe-t-il des fonctions de hachage plus rapides pour unordered_map/set en C++?
J'ai essayé City Hash de Google pour les clés entières et les chaînes de caractères, mais ses performances sont un peu moins bonnes que celles de std :: hash.
De manière générale, vous pouvez écrire une fonction de hachage plus rapide si vous savez quelque chose de spécifique sur les données que vous avez hachées. Comme un exemple stupide, si vous ne traitez que deux valeurs entières, 17 et 535, vous pouvez les réduire à 0 et 1 trivialement, et cela sera plus rapide que n'importe quelle fonction de hachage qui traite la gamme complète des valeurs entières. Alors qu'est-ce qui est spécial au sujet des valeurs que vous avez hachées? –
fermer une question si votre problème est résolu est toujours une bonne idée :) –