c++构建hash表
时间: 2024-10-10 19:13:38 浏览: 40
在C++中,构建哈希表(Hash Table),也称为关联数组或字典,通常使用标准库中的`unordered_map`容器。`unordered_map`底层实现了一个哈希表数据结构,它能提供快速的插入、查找和删除操作。下面是基本步骤:
1. **包含头文件**:
```cpp
#include <unordered_map>
```
2. **创建实例**:
```cpp
std::unordered_map<std::string, int> myHashTable; // 创建一个键为字符串,值为整数的哈希表
```
3. **添加元素**:
```cpp
myHashTable["apple"] = 1; // 插入键值对
```
4. **查找元素**:
```cpp
int value;
if (myHashTable.find("apple") != myHashTable.end()) {
value = myHashTable["apple"];
}
```
5. **删除元素**:
```cpp
myHashTable.erase("apple"); // 删除键为"apple"的元素
```
6. **遍历**(通过迭代器):
```cpp
for (const auto& pair : myHashTable) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << "\n";
}
```
7. **自定义比较规则**:如果需要自定义哈希函数或比较器,可以在模板中指定:
```cpp
struct MyKey {
// 自定义比较逻辑
};
std::unordered_map<MyKey, int, MyComparator> customHashTable;
```
阅读全文