错误写法:
//删除mymap中value<=slow的pair
for(auto iter = mymap.begin();iter!=mymap.end();iter++){
if(iter->second<=slow)
mymap.erase(iter);
}
正确写法:
//删除mymap中value<=slow的pair
auto iter = mymap.begin();
while(iter!=mymap.end()){
if(iter->second<=slow)
mymap.erase(iter++);
else iter++;
}
另外:
for(auto iter: mymap){
//这个iter是pair<T,T>类型,不是iterator
//所以不可以 mymap.erase(iter);
}
I don’t know why