C++ 中常见的哈希表实现是 unordered_map,它是 C++ 标准模板库(STL)提供的一种基于哈希表实现的关联容器。使用哈希表可以实现快速的查找、插入和删除操作,时间复杂度为 O(1)(平均情况下)。
以下是使用 unordered_map 的一般步骤:
包含头文件:首先需要包含 <unordered_map> 头文件。
#include <unordered_map>
定义哈希表:使用 unordered_map 模板定义哈希表,指定键(key)和值(value)的类型。
std::unordered_map<KeyType, ValueType> myMap;
插入元素:可以使用 insert() 函数或者数组访问方式插入键值对。
myMap.insert(std::make_pair(key, value));
// 或者
myMap[key] = value;
访问元素:可以使用 at() 函数或者数组访问方式访问指定键的值。
ValueType value = myMap.at(key);
// 或者
ValueType value = myMap[key];
查找元素:使用 find() 函数查找指定键是否存在。
auto it = myMap.find(key);
if (it != myMap.end()) {
// 找到了键为 key 的元素
} else {
// 没有找到键为 key 的元素
}
删除元素:可以使用 erase() 函数删除指定键的元素。
myMap.erase(key);
遍历哈希表:可以使用迭代器遍历哈希表中的所有元素。
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
// 使用 it->first 访问键,it->second 访问值
}
大小操作:可以使用 size() 函数获取哈希表中键值对的数量。
size_t size = myMap.size();
清空哈希表:使用 clear() 函数清空哈希表中的所有元素。
myMap.clear();
以上是使用 unordered_map 的基本操作步骤,通过哈希表可以实现快速的数据查找和存储。