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

   2024-10-08 5200
核心提示:在C++中,使用std::map的erase函数可以删除一个或多个元素,但是只能传入一个迭代器或键值作为参数。如果要一次删除多个元素,可

在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函数逐个删除对应的元素。最后,我们输出剩余的元素。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号