当前位置:实例文章 » 其他实例» [文章]std::unordered_map 使用总结

std::unordered_map 使用总结

发布人:shili8 发布时间:2025-02-07 12:14 阅读次数:0

**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` 的构造函数、成员函数和代码示例,可以有效地操作哈希表并利用其特性。

相关标签:
其他信息

其他资源

Top