PDA

Visualizza la versione completa : [c++]stl e delete


giuseppe500
04-06-2010, 16:37
ciao.
Ho una mappa del tipo:
map<int, CCartesianPointIfc*> m_PointsPoly;

e vorrei trovare il metodo migliore per fare il delete dei puntatori contenuti di tipo CCartesianPointIfc , di solito cosa si usa?
possibile ad es. chiamare il comando erase da begin a end di una mappa e fare il delete dei puntatori contenuti nella mappa?
ho trovato ad es questo su google:


static bool deleteAll( Foo * theElement ) { delete theElement; return true; }
foo_list. remove_if ( deleteAll );

per una lista , funziona ancheper una mappa ?
un buon metodo?
grazie.

shodan
04-06-2010, 20:47
Crea un functor che prenda come argomento di operator() la std::pair della mappa e chiama la delete su second.
Poi passa tutto in un for_each e infine fai una erase della mappa.

Loading