Sintassi:
#include <map> void erase( iterator pos ); void erase( iterator start, iterator end ); size_type erase( const key_type& key );
La funzione erase() cancella gli elementi alla posizione pos, oppure cancella gli elementi compresi tra start e end (con l'esclusione di end), oppure elimina tutti gli elementi che hanno key come valore della chiave. Notare che nel primo caso l'iteratore pos diventa invalido dopo la chiamata a erase().
Esempio: il codice seguente usa erase() in un ciclo while per svuotare in modo incrementale una mappa e mostrarne in contenuti seguendo il loro ordine:
struct strCmp { bool operator()( const char* s1, const char* s2 ) const { return strcmp( s1, s2 ) < 0; } }; ... map<const char*, int, strCmp> ages; ages["Homer"] = 38; ages["Marge"] = 37; ages["Lisa"] = 8; ages["Maggie"] = 1; ages["Bart"] = 10; while( !ages.empty() ) { cout << "Erasing: " << ages.begin()->first << ", " << ages.begin()->second << endl; ages.erase( ages.begin() ); }
Il codice mostrate produrrebbe il seguente output:
Erasing: Bart, 10
Erasing: Homer, 38
Erasing: Lisa, 8
Erasing: Maggie, 1
Erasing: Marge, 37