Aşağıdaki kodda bir harita boyunca döngü yapıyorum ve bir elemanın silinmesi gerekip gerekmediğini test ediyorum. Elemanı silmek ve yinelemeyi sürdürmek güvenli mi yoksa anahtarları başka bir kapta toplamam ve silmeyi () çağırmak için ikinci bir döngü yapmam gerekir mi?
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);
}
}
GÜNCELLEME: Tabii ki, sonra ilgili olacağını düşünmediğim ancak sorumu cevaplayan bu soruyu okudum .
std::remove_if
çalışmayan soruya dikkat edinstd:map