typedef std::map<std::string,float> StringFloatMap; StringFloatMap col1; StringFloatMap::iterator pos; for(pos = col1.begin();pos!=col1.end();){ if(pos->second == value) col1.erase(pos++); else{ ++pos; } }