std map erase
时间: 2024-02-11 21:02:57 浏览: 142
vector与map的erase()函数详细解析
以下是两种使用std::map的高效删除的方法:
1. 使用std::remove_if和erase组合的方法:
```c++
std::map<int, int> myMap;
// ...
int v = 10; // 要删除的值
myMap.erase(std::remove_if(myMap.begin(), myMap.end(), [&](const std::pair<int, int>& p) { return p.second == v; }), myMap.end());
```
这种方法使用了remove_if算法来找到要删除的元素,并将其移到容器的末尾,然后使用erase方法将这些元素从容器中删除。
2. 直接使用erase方法删除指定的键值对:
```c++
std::map<int, int> myMap;
// ...
int k = 5; // 要删除的键
myMap.erase(k);
```
这种方法直接使用erase方法删除指定的键值对。
阅读全文