std::unordered_map 使用总结
**std::unordered_map 使用总结**
`std::unordered_map` 是 C++ 中一个非常重要的容器类,用于实现哈希表(Hash Table)的功能。它提供了快速查找、插入和删除元素的能力,使其成为许多应用场景中的首选选择。
###什么是哈希表?
哈希表是一种数据结构,它使用哈希函数将键值映射到一个固定大小的索引集合中。这种机制使得查找、插入和删除元素变得非常快速,因为只需要通过哈希函数计算出对应的索引即可。
### std::unordered_map 的特点`std::unordered_map` 提供了以下几个重要的特性:
* **快速查找**:使用哈希函数可以快速找到指定键值对应的元素。
* **快速插入和删除**:同样地,通过哈希函数计算出索引后,可以快速插入或删除元素。
* **高效内存利用**:由于哈希表通常使用固定大小的数组来存储元素,因此可以有效地利用内存。
### std::unordered_map 的构造函数`std::unordered_map` 提供了多个构造函数,用于创建不同的哈希表实例。以下是其中几个重要的构造函数:
* **std::unordered_map()**:默认构造函数,创建一个空哈希表。
* **std::unordered_map(size_type n)**:指定大小的哈希表,所有键值都初始化为0。
* **std::unordered_map(const Key& a1, const Key& a2)**:指定两个键值的哈希表,所有其他键值都初始化为0。
### std::unordered_map 的成员函数`std::unordered_map` 提供了多个成员函数来操作哈希表。以下是其中几个重要的成员函数:
* **size()**:返回哈希表中元素的数量。
* **empty()**:检查哈希表是否为空。
* **begin()** 和 **end()**:返回哈希表中元素的迭代器。
* **insert(const value_type& val)**:插入一个新元素到哈希表中。
* **erase(const Key& k)**:删除哈希表中指定键值对应的元素。
###代码示例以下是使用 `std::unordered_map` 的几个代码示例:
cpp#include <iostream> #include <unordered_map> int main() { // 创建一个空哈希表 std::unordered_map<int, int> map; // 插入一些元素 map.insert(std::make_pair(1,10)); map.insert(std::make_pair(2,20)); map.insert(std::make_pair(3,30)); // 打印哈希表中的元素 for (const auto& pair : map) { std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl; } return0; }
cpp#include <iostream> #include <unordered_map> int main() { // 创建一个哈希表,所有键值都初始化为0 std::unordered_map<int, int> map(5); // 打印哈希表中的元素 for (const auto& pair : map) { std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl; } return0; }
cpp#include <iostream> #include <unordered_map> int main() { // 创建一个哈希表,指定两个键值 std::unordered_map<int, int> map(1,2); // 打印哈希表中的元素 for (const auto& pair : map) { std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl; } return0; }
cpp#include <iostream> #include <unordered_map> int main() { // 创建一个哈希表 std::unordered_map<int, int> map; // 插入一些元素 map.insert(std::make_pair(1,10)); map.insert(std::make_pair(2,20)); // 删除指定键值对应的元素 map.erase(1); // 打印哈希表中的元素 for (const auto& pair : map) { std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl; } return0; }
### 总结`std::unordered_map` 是 C++ 中一个非常重要的容器类,用于实现哈希表(Hash Table)的功能。它提供了快速查找、插入和删除元素的能力,使其成为许多应用场景中的首选选择。通过使用 `std::unordered_map` 的构造函数、成员函数和代码示例,可以有效地操作哈希表并利用其特性。