Apagar / Remover conteúdo do mapa (ou qualquer outro container STL) enquanto iterar

Alegadamente, você não pode simplesmente apagar / remover um elemento em um container enquanto itera o iterador se torna inválido. Quais são as maneiras (seguras) de remover os elementos que atendem a uma determinada condição? por favor, apenas stl, sem impulso ou tr1.

EDITAR Existe uma maneira mais elegante se eu quiser apagar um número de elementos que atendam a um determinado critério, talvez usando funtor e for_each ou apagar o algoritmo?

questionAnswers(9)

yourAnswerToTheQuestion