C でのハッシュ検索アルゴリズムの使用方法
ハッシュ検索アルゴリズムは、ハッシュを介してキーワードを使用する効率的な検索および保存テクノロジです。ハッシュ関数は固定関数に変換されます。 -length インデックス。このインデックスはデータ構造内の検索に使用されます。 C では、標準ライブラリのハッシュ コンテナーとハッシュ関数を使用して、ハッシュ検索アルゴリズムを実装できます。この記事では、C でハッシュ検索アルゴリズムを使用する方法を説明し、具体的なコード例を示します。
#include <unordered_set> // 哈希集合的头文件 #include <unordered_map> // 哈希映射的头文件 using namespace std;
まず、ハッシュ コレクションを作成し、それに要素を追加します。
unordered_set<int> hashSet; hashSet.insert(1); hashSet.insert(2); hashSet.insert(3);
次に、count() 関数を使用して、ハッシュ コレクションに要素が存在するかどうかを確認します。
bool exist = hashSet.count(2);
erase() 関数を使用して、コレクション内の要素を削除することもできます。
hashSet.erase(2);
まず、ハッシュ マップを作成し、それにキーと値のペアを追加します。
unordered_map<string, int> hashMap; hashMap["apple"] = 3; hashMap["banana"] = 5; hashMap["orange"] = 2;
find() 関数を使用すると、ハッシュ マップ内の値を検索し、キーと値のペアが存在するかどうかを判断できます。
auto iter = hashMap.find("apple"); if (iter != hashMap.end()) { int value = iter->second; cout << "apple的值为:" << value << endl; } else { cout << "未找到相关键值对" << endl; }
erase() 関数を使用して、ハッシュ マップ内のキーと値のペアを削除することもできます。
hashMap.erase("banana");
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;
上記のコードでは、MyHash 構造内の Operator() 関数をオーバーロードして、文字列をハッシュ値に変換します。
// 调整哈希容器的容量 hashMap.resize(100); // 设置负载因子为0.5 hashMap.max_load_factor(0.5);
上記は、C でのハッシュ検索アルゴリズムの使用方法といくつかの最適化テクニックの紹介です。実際のアプリケーションでは、ハッシュ検索アルゴリズムは、プログラムの実行効率を大幅に向上できる効率的な検索および保存テクノロジです。ハッシュ検索アルゴリズムに興味がある場合は、さらに調査と実践を行って知識とスキルを拡大するとよいでしょう。
以上がC++ でハッシュ検索アルゴリズムを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。