如果在从开始到结束迭代时调用map元素上的擦除(),会发生什么?

如果在从开始到结束迭代时调用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);
    }}

更新:当然,我那时读这个问题我不认为这是相关的,但回答了我的问题。


慕码人2483693
浏览 427回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP