c++ map删除后迭代器怎么办

   2024-10-08 9120
核心提示:在C++中,如果你删除了一个map中的元素,那么相应的迭代器将会失效,不能再使用。通常,删除元素后,你可以将迭代器移动到下一个

在C++中,如果你删除了一个map中的元素,那么相应的迭代器将会失效,不能再使用。通常,删除元素后,你可以将迭代器移动到下一个位置,或者重新获取一个新的迭代器。

以下是一个例子,演示如何在删除元素后处理迭代器:

#include <iostream>#include <map>int main() {    std::map<int, int> myMap = { {1, 10}, {2, 20}, {3, 30} };    for (auto it = myMap.begin(); it != myMap.end(); ) {        if (it->first == 2) {            it = myMap.erase(it);        } else {            ++it;        }    }    for (auto it = myMap.begin(); it != myMap.end(); ++it) {        std::cout << it->first << " : " << it->second << std::endl;    }    return 0;}

在上面的例子中,我们通过循环遍历map,如果键值等于2,就删除这个元素并将迭代器移动到下一个位置;否则,只是将迭代器移动到下一个位置。最后,我们再次遍历map打印出剩余的元素。

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

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