C++에서 해시 검색 알고리즘을 사용하는 방법
해시 검색 알고리즘은 키워드를 해시 함수를 통해 고정 길이 인덱스로 변환한 후 이 인덱스를 사용하여 데이터 내에서 검색하는 효율적인 검색 및 저장 기술입니다. 구조. 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; }
Eraser() 함수를 사용하여 해시 맵에서 키-값 쌍을 삭제할 수도 있습니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!