最佳答案
在下面的代码中,我循环遍历一个 map 并测试一个元素是否需要被擦除。擦除元素并继续迭代是否安全,还是需要在另一个容器中收集密钥并执行第二个循环来调用擦除() ?
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);
}
}
更新: 当然,我然后 读这个问题我不认为会有关系,但回答我的问题。