C++遍历map删除特定的元素

c++
941
2023/12/21 17:25:54
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C++中,可以使用迭代器来遍历map,并在遍历过程中删除特定的元素。下面是一个示例代码:

#include <iostream>
#include <map>

int main() {
    std::map<int, std::string> myMap;
    myMap[1] = "One";
    myMap[2] = "Two";
    myMap[3] = "Three";
    myMap[4] = "Four";

    // 遍历map并删除特定的元素
    for(auto it = myMap.begin(); it != myMap.end(); ) {
        if(it->second == "Two") {
            it = myMap.erase(it);
        } else {
            ++it;
        }
    }

    // 输出剩余的元素
    for(auto const& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

上述代码创建了一个包含四个元素的map。然后,使用迭代器遍历map,并在遍历过程中删除值为"Two"的元素。最后,输出剩余的元素。输出结果如下:

1: One
3: Three
4: Four

在遍历过程中删除元素时,需要注意的是,删除元素后迭代器会失效,必须使用返回的新迭代器继续遍历。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c++矩阵转置怎么实现