c++怎么遍历map删除特定元素

avatar
作者
猴君
阅读量:0

在C++中,可以使用迭代器来遍历map,并删除特定元素。具体的步骤如下:

  1. 定义一个迭代器来遍历map。例如,使用auto来定义一个自动推导的迭代器:
for (auto it = myMap.begin(); it != myMap.end();) {     // 遍历的代码 } 
  1. 在遍历的代码中,判断当前元素是否需要删除。如果需要删除,则使用迭代器的erase()方法来删除元素,并将迭代器指向下一个元素。如果不需要删除,则直接将迭代器指向下一个元素。
if (条件满足) {     myMap.erase(it++); // 先用后加,避免迭代器失效 } else {     ++it; } 

完整的示例代码如下:

#include <iostream> #include <map>  int main() {     std::map<int, std::string> myMap;     myMap[1] = "one";     myMap[2] = "two";     myMap[3] = "three";     myMap[4] = "four";     myMap[5] = "five";      // 遍历并删除特定元素     for (auto it = myMap.begin(); it != myMap.end();)     {         if (it->first == 3)         {             myMap.erase(it++); // 先用后加,避免迭代器失效         }         else         {             ++it;         }     }      // 输出结果     for (const auto& pair : myMap)     {         std::cout << pair.first << ": " << pair.second << std::endl;     }      return 0; } 

运行以上代码,输出结果为:

1: one 2: two 4: four 5: five 

可以看到,元素3被成功删除了。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!