相关疑难解决方法(0)

如果在从头到尾迭代时调用map元素上的erase()会发生什么?

在下面的代码中,我遍历一个map并测试是否需要擦除一个元素.擦除元素并继续迭代是否安全,或者我是否需要在另一个容器中收集密钥并执行第二个循环来调用erase()?

map<string, SerialdMsg::SerialFunction_t>::iterator pm_it;
for (pm_it = port_map.begin(); pm_it != port_map.end(); pm_it++)
{
    if (pm_it->second == delete_this_id) {
        port_map.erase(pm_it->first);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:当然,我读了这个问题,我认为这个问题没有关系,但回答了我的问题.

c++ iterator stl

132
推荐指数
2
解决办法
8万
查看次数

标签 统计

c++ ×1

iterator ×1

stl ×1