Maison >développement back-end >C++ >Comment utiliser l'algorithme de recherche de hachage en C++
Comment utiliser l'algorithme de recherche de hachage en C++
L'algorithme de recherche de hachage est une technologie de recherche et de stockage efficace, qui convertit les mots-clés en un index de longueur fixe via une fonction de hachage, puis utilise cet index pour rechercher dans les données structure. En C++, nous pouvons implémenter des algorithmes de recherche de hachage en utilisant des conteneurs de hachage et des fonctions de hachage de la bibliothèque standard. Cet article explique comment utiliser l'algorithme de recherche de hachage en C++ et fournit des exemples de code spécifiques.
#include <unordered_set> // 哈希集合的头文件 #include <unordered_map> // 哈希映射的头文件 using namespace std;
Tout d'abord, nous créons une collection de hachage et y ajoutons des éléments.
unordered_set<int> hashSet; hashSet.insert(1); hashSet.insert(2); hashSet.insert(3);
Ensuite, nous pouvons utiliser la fonction count() pour déterminer si un élément existe dans le jeu de hachage.
bool exist = hashSet.count(2);
Nous pouvons également utiliser la fonction Eraser() pour supprimer des éléments de la collection.
hashSet.erase(2);
Tout d'abord, nous créons une carte de hachage et y ajoutons des paires clé-valeur.
unordered_map<string, int> hashMap; hashMap["apple"] = 3; hashMap["banana"] = 5; hashMap["orange"] = 2;
Nous pouvons utiliser la fonction find() pour trouver la valeur dans la carte de hachage et déterminer si la paire clé-valeur existe.
auto iter = hashMap.find("apple"); if (iter != hashMap.end()) { int value = iter->second; cout << "apple的值为:" << value << endl; } else { cout << "未找到相关键值对" << endl; }
Nous pouvons également utiliser la fonction Eraser() pour supprimer les paires clé-valeur dans la carte de hachage.
hashMap.erase("banana");
Nous pouvons personnaliser la fonction de hachage en surchargeant le modèle std::hash.
// 自定义哈希函数 struct MyHash { size_t operator()(const string& str) const { size_t result = 0; for (char c : str) { result = result * 31 + c; } return result; } }; unordered_map<string, int, MyHash> hashMap;
Dans le code ci-dessus, nous surchargeons la fonction Operator() dans la structure MyHash pour convertir la chaîne en valeur de hachage.
// 调整哈希容器的容量 hashMap.resize(100); // 设置负载因子为0.5 hashMap.max_load_factor(0.5);
Ce qui précède est une introduction à la façon d'utiliser l'algorithme de recherche de hachage en C++ et à quelques techniques d'optimisation. J'espère que cela pourra vous être utile. Dans les applications pratiques, l'algorithme de recherche de hachage est une technologie de recherche et de stockage efficace qui peut considérablement améliorer l'efficacité d'exécution du programme. Si vous êtes intéressé par les algorithmes de recherche de hachage, vous souhaiterez peut-être approfondir vos recherches et vous entraîner pour élargir vos connaissances et vos compétences.
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!