我使用此代码从地图容器中删除等于某个 int 的元素。
for(auto x:m){
if((x.second)==element)m.erase(x.first);
}
Run Code Online (Sandbox Code Playgroud)
结果是分段错误。我也试过这个:
for(map<int,int>::iterator i=m.begin();i!=m.end();i++){
if((i->second)==element)m.erase(i);
}
Run Code Online (Sandbox Code Playgroud)
结果一样。如果将 i++ 放入 if/else 程序将冻结/循环或其他什么。我怎样才能解决这个问题?