c++遍历清空unordered_map
时间: 2023-12-16 10:28:38 浏览: 87
以下是两种C++遍历清空unordered_map的例子:
1. 使用迭代器遍历并清空unordered_map
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, int> myMap = {{1, 10}, {2, 20}, {3, 30}};
for (auto it = myMap.begin(); it != myMap.end();) {
it = myMap.erase(it);
}
return 0;
}
```
2. 使用范围for循环遍历并清空unordered_map
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, int> myMap = {{1, 10}, {2, 20}, {3, 30}};
for (auto& pair : myMap) {
myMap.erase(pair.first);
}
return 0;
}
```
相关问题
c++的unordered_map容器的.clear()方法时间复杂度是多少,如何快速清空一个unordered_map
unordered_map容器的.clear()方法的时间复杂度是线性的,即O(n),其中n是unordered_map中元素的数量。这是因为.clear()方法需要遍历unordered_map中的所有元素并销毁它们。
要快速清空一个unordered_map,可以使用.swap()方法。具体来说,可以创建一个空的unordered_map,然后使用.swap()方法将其与原始的unordered_map交换。这样做的时间复杂度是常数级别的,即O(1)。示例代码如下:
```
unordered_map<int, int> my_map;
// 添加元素到my_map中
...
// 快速清空my_map
unordered_map<int, int>().swap(my_map);
```
c++中的unordered_map如何使用
unordered_map是C++标准库中的一个容器,用于存储键值对,它提供了基于哈希表的快速查找功能。使用unordered_map需要包含头文件<unordered_map>。
下面是unordered_map的基本用法示例:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
// 创建一个unordered_map
std::unordered_map<std::string, int> umap;
// 添加键值对
umap["apple"] = 3;
umap["banana"] = 5;
umap["orange"] = 2;
// 访问值
std::cout << "The value of apple is: " << umap["apple"] << std::endl;
// 遍历unordered_map
for (const auto& pair : umap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
// 检查key是否存在
if (umap.find("banana") != umap.end()) {
std::cout << "The key 'banana' exists in the unordered_map." << std::endl;
}
// 删除键值对
umap.erase("orange");
// 清空unordered_map
umap.clear();
return 0;
}
```
在上面的示例中,我们创建了一个unordered_map对象umap,并添加了几个键值对。使用方括号运算符可以访问和修改值。通过遍历unordered_map,我们可以访问所有的键值对。可以使用find函数来检查某个键是否存在,并使用erase函数删除键值对。最后,使用clear函数清空unordered_map。
unordered_map还提供了其他一些常用的方法和操作,你可以查阅C++标准库的文档来了解更多信息。
阅读全文