map中删除指定元素

it2025-10-31  1

map中删除元素的操作一般是针对特定的键,那么对于特定的值,是如何进行删除操作呢?

#include <iostream> #include <map> #include <string> using namespace std; void remove_elements(std::map<std::string,int> &m) { if(m.size() == 0){ return ; } map<string,int>::iterator it; for(it=m.begin();it!=m.end();){ if (it->second == 10){ m.erase(it++); } else{ it++; } } } int main() { map<string,int> m; string key; int val =0; while(cin>>key>>val){ m[key] = val; } remove_elements(m); map<string,int>::iterator it; for(it=m.begin();it!=m.end();it++){ cout<<it->first<<" "<<it->second<<endl; } }

简要的分析一下,map中有四种插入操作,这里使用的是“[]”。删除的时候,注意配合对迭代器it这个指针的使用;顺便提一下,while(cin>>)这种退出循环的方法是 换行之后 Ctrl+D ,然后Enter就可以了。如果使用Ctrl+c会出莫名其妙的bug

最新回复(0)