C++ 哈希表及其用法
时间: 2024-09-09 07:03:39 浏览: 45
C++ 中的哈希表主要通过 `std::unordered_map` 和 `std::unordered_set` 来实现,它们提供了高效的查找、插入和删除操作。以下是基本的用法:
1. **创建哈希表**:
```cpp
std::unordered_map<std::string, int> myMap; // 创建一个key-value对的哈希表,key为std::string,value为int
```
2. **插入元素**:
```cpp
myMap["apple"] = 1; // 插入键值对 "apple" -> 1
```
3. **查找元素**:
```cpp
if (myMap.find("apple") != myMap.end()) {
int count = myMap["apple"]; // 查找 "apple" 的值,如果存在则返回
}
```
4. **删除元素**:
```cpp
myMap.erase("apple"); // 删除 "apple" 这个键
```
5. **遍历哈希表**:
```cpp
for (const auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << "\n"; // 打印每个键值对
}
```
6. **性能优化**:
- 哈希表依赖于哈希函数来确定存储位置,选择合适的哈希函数可以提高冲突率,从而提升性能。
- 注意不要过度填充哈希表,保持适当的装载因子(通常推荐0.7左右),避免大量冲突。
注意事项:
- 哈希表不保证元素顺序,如果你需要有序访问,应考虑使用其他数据结构如`std::map`。
- 如果哈希表的键重复,后面的插入会覆盖前面的值。
阅读全文