温馨提示×

c++ map删除特定条件下的元素

c++
小樊
182
2024-06-25 16:51:29
栏目: 编程语言

要删除满足特定条件的元素,可以使用std::maperase函数结合std::remove_if函数来实现。以下是一个示例代码:

#include <iostream>
#include <map>
#include <algorithm>

int main() {
    std::map<int, std::string> myMap = {
        {1, "apple"},
        {2, "banana"},
        {3, "cherry"},
        {4, "date"},
        {5, "fig"}
    };

    // 删除key为偶数的元素
    myMap.erase(std::remove_if(myMap.begin(), myMap.end(), [](const std::pair<int, std::string>& pair) {
        return pair.first % 2 == 0;
    }), myMap.end());

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

    return 0;
}

在上面的示例中,我们首先定义了一个std::map并初始化了一些元素。然后使用std::remove_if函数结合lambda表达式来判断是否满足删除条件,最后再调用erase函数来删除满足条件的元素。

0