c++获取map erase
时间: 2023-09-06 20:14:12 浏览: 61
在 C++ 中,可以使用 map 的 erase() 函数来删除 map 中的元素。erase() 函数有多个重载版本,其中一种常见的用法是传入要删除元素的键值作为参数。例如,以下代码可以删除名为 mymap 的 map 中键值为 "key_to_delete" 的元素:
```
std::map<std::string, int> mymap;
mymap["key_to_delete"] = 42;
// 删除键值为 "key_to_delete" 的元素
mymap.erase("key_to_delete");
```
需要注意的是,如果要删除的键值不存在于 map 中,调用 erase() 函数不会产生任何效果。另外,erase() 函数返回一个迭代器,指向被删除元素的下一个元素。如果要删除多个元素,可以使用迭代器来循环调用 erase() 函数。
相关问题
c++map的erase操作
C++中的`std::map`是一种关联容器,它提供了一种键值对的映射关系。`erase`操作用于从`map`中删除指定的元素。`erase`函数有多种用法,下面是几种常见的用法:
1. 删除指定键的元素:
```cpp
std::map<Key, Value> myMap;
// 添加元素
myMap.insert(std::make_pair(key1, value1));
myMap.insert(std::make_pair(key2, value2));
// 删除指定键的元素
myMap.erase(key1);
```
2. 删除指定迭代器指向的元素:
```cpp
std::map<Key, Value> myMap;
// 添加元素
myMap.insert(std::make_pair(key1, value1));
myMap.insert(std::make_pair(key2, value2));
// 获取迭代器
auto it = myMap.find(key1);
// 删除指定迭代器指向的元素
myMap.erase(it);
```
3. 删除指定范围内的元素:
```cpp
std::map<Key, Value> myMap;
// 添加元素
myMap.insert(std::make_pair(key1, value1));
myMap.insert(std::make_pair(key2, value2));
myMap.insert(std::make_pair(key3, value3));
// 删除指定范围内的元素
auto start = myMap.find(key1);
auto end = myMap.find(key3);
myMap.erase(start, end);
```
需要注意的是,`erase`操作会返回一个指向被删除元素之后元素的迭代器,如果删除的是最后一个元素,则返回`end()`迭代器。
c++ map erase函数
C++中的map是一种关联式容器,它提供了一种将键映射到值的方法。erase()函数是map容器中的一个成员函数,用于删除map中的元素。以下是erase()函数的使用方法和示例:
1. erase()函数的使用方法:
```c++
map.erase(key); // 删除map中键为key的元素
map.erase(iterator); // 删除迭代器指向的元素
map.erase(first, last); // 删除[first, last)区间内的所有元素
```
2. erase()函数的示例:
```c++
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, int> b;
b[1] = 5;
b[2] = 6;
b[3] = 7;
b[4] = 8;
// 删除键为2的元素
b.erase(2);
// 删除键为奇数的元素
for (auto iter = b.begin(); iter != b.end();) {
if (iter->first % 2 == 1) {
iter = b.erase(iter);
} else {
++iter;
}
}
// 输出剩余元素
for (auto x : b) {
cout << x.first << " " << x.second << endl;
}
return 0;
}
```
输出结果为:
```
4 8
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)