unordered_map删除成员
时间: 2024-02-05 09:09:25 浏览: 75
unordered_map是C++标准库中的一个关联容器,它提供了一种键值对的映射关系。要删除unordered_map中的成员,可以使用erase()函数来实现。
erase()函数有多种用法,可以根据需要选择适合的方式进行删除。以下是几种常见的删除方式:
1. 删除指定键的成员:
```cpp
unordered_map<int, string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
myMap.erase(2); // 删除键为2的成员
```
2. 删除指定范围内的成员:
```cpp
unordered_map<int, string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
auto it = myMap.find(2);
myMap.erase(it, myMap.end()); // 删除从it指向的成员到末尾的所有成员
```
3. 删除满足条件的成员:
```cpp
unordered_map<int, string> myMap;
myMap[1] = "apple";
myMap[2] = "banana";
myMap[3] = "orange";
for (auto it = myMap.begin(); it != myMap.end(); ) {
if (it->second == "banana") {
it = myMap.erase(it); // 删除值为"banana"的成员
} else {
++it;
}
}
```
需要注意的是,使用erase()函数删除成员后,unordered_map的大小会相应减小。
阅读全文