В следующем коде я просматриваю карту и проверяю, нужно ли стирать элемент. Безопасно ли стирать элемент и продолжать повторять или мне нужно собрать ключи в другом контейнере и сделать второй цикл, чтобы вызвать 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);
}
}
ОБНОВЛЕНИЕ: Конечно, я тогда прочитал этот вопрос, который, как я думал, не будет связан, но отвечает на мой вопрос.