介绍一下unordered_map的用法
时间: 2023-05-20 13:02:48 浏览: 83
unordered_map是C++ STL中的一个关联容器,它提供了一种将键映射到值的方法。它使用哈希表来实现,因此查找和插入操作的时间复杂度为O(1)。使用unordered_map时,需要包含头文件<unordered_map>。以下是unordered_map的用法示例:
// 创建一个unordered_map对象
unordered_map<string, int> myMap;
// 插入键值对
myMap["apple"] = 1;
myMap["banana"] = 2;
myMap["orange"] = 3;
// 查找键对应的值
int value = myMap["apple"]; // value = 1
// 遍历unordered_map
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
cout << it->first << " : " << it->second << endl;
}
// 删除键值对
myMap.erase("banana");
注意:unordered_map中的键必须是唯一的,如果插入一个已经存在的键,则会覆盖原有的值。
相关问题
c++哈希表unordered_set unordered_map用法
unordered_set和unordered_map都是C++ STL中的哈希表容器,它们的用法如下:
unordered_set用法:
```c++
#include <unordered_set>
using namespace std;
int main() {
unordered_set<int> s; // 定义一个空的unordered_set
s.insert(1); // 插入元素1
s.insert(2); // 插入元素2
s.insert(3); // 插入元素3
s.erase(2); // 删除元素2
if (s.find(1) != s.end()) { // 查找元素1
cout << "Found!" << endl;
}
for (auto x : s) { // 遍历unordered_set
cout << x << " ";
}
return 0;
}
```
unordered_map用法:
```c++
#include <unordered_map>
using namespace std;
int main() {
unordered_map<string, int> m; // 定义一个空的unordered_map
m["apple"] = 1; // 插入键值对"apple":1
m["banana"] = 2; // 插入键值对"banana":2
m["orange"] = 3; // 插入键值对"orange":3
m.erase("banana"); // 删除键为"banana"的键值对
if (m.find("apple") != m.end()) { // 查找键为"apple"的值
cout << "Found!" << endl;
}
for (auto p : m) { // 遍历unordered_map
cout << p.first << ":" << p.second << " ";
}
return 0;
}
```
unordered_map用法
unordered_map是C++标准库中的一个容器,它提供了一种键值对的映射关系。unordered_map使用哈希表来实现,因此可以在常数时间内进行插入、查找和删除操作。下面是unordered_map的用法示例:
```cpp
#include <unordered_map>
#include <iostream>
int main() {
// 创建一个unordered_map对象
std::unordered_map<int, std::string> umap;
// 插入键值对
umap.insert(std::make_pair(1, "apple"));
umap.insert(std::make_pair(2, "banana"));
umap.insert(std::make_pair(3, "orange"));
// 访问元素
std::cout << "The value of key 2 is: " << umap[2] << std::endl;
// 查找元素
auto it = umap.find(3);
if (it != umap.end()) {
std::cout << "Key 3 found, value is: " << it->second << std::endl;
}
// 删除元素
umap.erase(1);
// 遍历unordered_map
for (const auto& pair : umap) {
std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
}
return 0;
}
```
输出结果:
```
The value of key 2 is: banana
Key 3 found, value is: orange
Key: 2, Value: banana
Key: 3, Value: orange
```
阅读全文