c++ map遍历删除
时间: 2023-12-24 15:06:09 浏览: 155
使用C++中的map容器,可以通过以下代码删除指定key值的元素:
```c++
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
// 删除key为2的元素
myMap.erase(2);
// 遍历map
for (auto& pair : myMap) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
输出结果为:
```
1: one
3: three
```
其中,erase()函数用于删除指定key值的元素,其参数为要删除的key值。在上述代码中,我们删除了key为2的元素,最终输出结果中只剩下了key为1和3的元素。
相关问题
C++map 遍历和删除
遍历和删除C++的map可以使用迭代器进行操作。遍历可以使用for循环配合迭代器来实现,删除可以使用erase函数配合迭代器来删除指定元素。需要注意的是,在使用erase函数删除元素时,要注意迭代器的失效问题,所以在删除元素后要对迭代器进行适当的处理,使其指向正确的位置。
以下是C++中遍历和删除map的示例代码:
```cpp
std::map<Key, Value> myMap;
// 遍历map
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
// 使用it访问键值对的键和值
Key key = it->first;
Value value = it->second;
// 进行相应的操作
}
// 删除指定元素
auto it = myMap.find(key); // 找到要删除的元素的迭代器
if (it != myMap.end()) {
myMap.erase(it); // 删除元素
}
```
C++ map遍历
在C++中,我们可以使用迭代器来遍历map。下面是一个示例代码:
```c++
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> myMap = {{"apple", 5}, {"banana", 3}, {"orange", 2}};
// 使用 auto 关键字来声明迭代器变量
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << it->first << " : " << it->second << std::endl;
}
return 0;
}
```
输出结果为:
```
apple : 5
banana : 3
orange : 2
```
在循环中,我们使用auto关键字来声明迭代器变量it,其类型为std::map<std::string, int>::iterator。循环条件为it != myMap.end(),即迭代器未到达map的末尾。在每次循环中,我们使用it->first和it->second来访问map中的键和值,然后输出它们。最后,我们通过++it来将迭代器移动到下一个元素。
阅读全文