std::map删除元素
时间: 2024-03-30 19:31:20 浏览: 72
在C++中,std::map是一种关联容器,它提供了一种键值对的映射关系。要删除std::map中的元素,可以使用成员函数erase()。erase()函数有多种用法,下面是一些常见的用法:
1. 删除指定键的元素:
```cpp
std::map<Key, Value> myMap;
// ...
myMap.erase(key); 删除键为key的元素
```
2. 删除指范围内的元素:
```cpp std::map<Key, Value> myMap;
// ...
auto start = myMap.find(startKey);
auto end = myMap.find(endKey);
myMap.erase(start, end); // 删除从startKey到endKey之间的元素(包括startKey,不包括Key)
```
3. 删除满足条件的元素:
```cpp std::map<Key, Value> myMap;
// ...
auto it = std::find_if(myMap.begin(), myMap.end(), [](const auto& pair) {
return /* 满足删除条件的判断 */;
});
if (it != myMap.end()) {
myMap.erase(it); // 删除满足条件的元素
}
```
需要注意的是,使用erase()函数删除元素后,std::map中的其他元素会自动调整位置。
阅读全文