Borre / elimine contenidos del mapa (o cualquier otro contenedor de STL) mientras lo itera

Al parecer, no puede simplemente borrar / eliminar un elemento en un contenedor mientras se repite cuando el iterador se vuelve inválido. ¿Cuáles son las formas (seguras) de eliminar los elementos que cumplen una determinada condición? por favor solo stl, no boost o tr1.

EDITAR ¿Hay una forma más elegante si quiero borrar una serie de elementos que cumplen con ciertos criterios, tal vez con el uso de un algoritmo funtor y for_each o erase?

Respuestas a la pregunta(9)

Su respuesta a la pregunta