使用C++11新特性遍历map容器并删除元素
时间: 2024-03-10 15:49:46 浏览: 191
在 C++11 中,可以使用 range-based for 循环来遍历 map 容器并删除元素。以下是示例代码:
```c++
#include <iostream>
#include <map>
int main()
{
std::map<std::string, int> myMap = {
{"apple", 5},
{"banana", 3},
{"pear", 2}
};
// 使用 range-based for 循环遍历 map
for(auto& [key, value] : myMap)
{
std::cout << key << " => " << value << std::endl;
// 删除值为 3 的元素
if(value == 3)
{
myMap.erase(key);
}
}
// 输出删除后的 map
std::cout << "After erase:" << std::endl;
for(auto& [key, value] : myMap)
{
std::cout << key << " => " << value << std::endl;
}
return 0;
}
```
输出结果:
```
apple => 5
banana => 3
pear => 2
After erase:
apple => 5
pear => 2
```
需要注意的是,在遍历 map 容器并删除元素时,需要使用迭代器进行删除操作,避免出现迭代器失效的问题。如上述示例代码中,使用 `myMap.erase(key)` 进行删除操作,而不是直接使用 `myMap.erase(value)`。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.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)
![](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)