I would like to loop through an std::map and delete items based on their contents. How best would this be done?
std::map
This is one simple way:
int value_to_delete( 2 ); for( std::map::iterator i = mm.begin(); i != mm.end(); ) { if( i->second != value_to_delete ) { mm.erase( i++ ); // advance before iterator become invalid } else { ++i; } }