如何对unordered_map的元素进行增删查改
时间: 2023-08-11 13:56:04 浏览: 265
对 unordered_map 的元素进行增删查改可以使用以下方法:
1. 增加元素:
- 使用 `insert()` 函数插入键值对。
```cpp
unordered_map<int, string> myMap;
myMap.insert(make_pair(1, "apple"));
```
- 使用 `emplace()` 函数插入键值对。该函数可以避免键的重复拷贝。
```cpp
unordered_map<int, string> myMap;
myMap.emplace(1, "apple");
```
- 使用索引操作符 `[]` 直接赋值。
```cpp
unordered_map<int, string> myMap;
myMap[1] = "apple";
```
2. 删除元素:
- 使用 `erase()` 函数删除指定键的元素。
```cpp
unordered_map<int, string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}};
myMap.erase(2); // 删除键为 2 的元素
```
- 使用迭代器删除指定位置的元素。
```cpp
unordered_map<int, string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}};
auto it = myMap.find(2);
if (it != myMap.end()) {
myMap.erase(it); // 删除指定迭代器位置的元素
}
```
- 使用 `clear()` 函数清空所有元素。
```cpp
unordered_map<int, string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}};
myMap.clear(); // 清空所有元素
```
3. 查找元素:
- 使用 `find()` 函数查找指定键的元素,返回一个迭代器。
```cpp
unordered_map<int, string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}};
auto it = myMap.find(2);
if (it != myMap.end()) {
cout << "找到键为 2 的元素: " << it->second << endl;
} else {
cout << "未找到键为 2 的元素" << endl;
}
```
4. 修改元素:
- 使用索引操作符 `[]` 直接修改指定键的值。
```cpp
unordered_map<int, string> myMap = {{1, "apple"}, {2, "banana"}, {3, "orange"}};
myMap[2] = "grape"; // 将键为 2 的值修改为 "grape"
```
这些是对 unordered_map 元素进行增删查改的常见操作方法,根据具体需求选择合适的方法即可。
阅读全文