unordered_map的方法
时间: 2023-10-14 17:26:13 浏览: 91
IATHook的代码 unorder-map管理
unordered_map是C++ STL中的一个关联容器(Associative Container),使用哈希表(Hash Table)实现,可以用于存储键值对(key-value pairs)。以下是unordered_map的常用方法:
1. 插入元素
unordered_map可以使用insert()方法插入元素,也可以使用[]运算符插入元素。例如:
```c++
// 使用insert()方法插入元素
unordered_map<int, string> myMap;
myMap.insert({1, "apple"});
myMap.insert(make_pair(2, "banana"));
// 使用[]运算符插入元素
myMap[3] = "orange";
myMap[4] = "peach";
```
2. 访问元素
unordered_map可以使用[]运算符访问元素,也可以使用at()方法访问元素。如果访问不存在的键,则[]运算符会将其插入元素,并且值默认为默认构造函数的值。例如:
```c++
// 使用[]运算符访问元素
string fruit1 = myMap[1];
string fruit2 = myMap[2];
// 使用at()方法访问元素
string fruit3 = myMap.at(3);
string fruit4 = myMap.at(4);
// 访问不存在的键
string fruit5 = myMap[5]; // 默认值为""
myMap.at(6); // 抛出std::out_of_range异常
```
3. 删除元素
unordered_map可以使用erase()方法删除元素,也可以使用clear()方法删除所有元素。例如:
```c++
// 删除元素
myMap.erase(1);
myMap.erase(2);
myMap.erase(3);
// 删除所有元素
myMap.clear();
```
4. 查找元素
unordered_map可以使用find()方法查找元素,如果找到则返回指向该元素的迭代器,否则返回end()迭代器。例如:
```c++
// 查找元素
auto it = myMap.find(1);
if (it != myMap.end()) {
cout << "Found the fruit: " << it->second << endl;
} else {
cout << "The fruit is not found." << endl;
}
```
5. 遍历元素
unordered_map可以使用迭代器遍历所有元素。例如:
```c++
// 遍历元素
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
cout << "Key: " << it->first << ", Value: " << it->second << endl;
}
```
以上是unordered_map的常用方法,使用时需要包含头文件<unordered_map>。
阅读全文