c++

c++ map删除可以一次多个吗

小樊
155
2024-06-25 16:53:28
栏目: 编程语言

在C++中,使用std::maperase函数可以删除一个或多个元素,但是只能传入一个迭代器或键值作为参数。如果要一次删除多个元素,可以使用循环遍历要删除的元素,然后使用erase函数逐个删除。

例如,以下是一种删除多个元素的方法:

#include <iostream>
#include <map>

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

    std::set<int> keysToDelete = {2, 3};

    for (auto it = keysToDelete.begin(); it != keysToDelete.end(); ++it) {
        myMap.erase(*it);
    }

    for (auto& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }

    return 0;
}

在上述示例中,我们首先创建了一个std::map对象myMap,然后使用std::set对象keysToDelete来存储要删除的键值。接着,在循环中,我们遍历keysToDelete中的键值,然后使用erase函数逐个删除对应的元素。最后,我们输出剩余的元素。

0
看了该问题的人还看了