当前位置: 代码迷 >> 综合 >> map删除元素
  详细解决方案

map删除元素

热度:45   发布时间:2023-09-27 21:51:55.0

1.  删除指定的key

map<int,int> ::iterator iter = m.find(1);
m.erase(iter);

上述例子的map是任意给定的,我们指定删除map<int,int> m中 键值为1的数据


测试结果m的size减一

上完整测试代码

#include<iostream>
#include<map>
using namespace std;
int main(){
    map<int,int> m;
    m[1] = 11;
    m[22] = 22;
    map<int,int> ::iterator iter = m.find(1);
    cout<<m.size()<<endl;
    if(iter!=m.end())
        m.erase(iter);
    if(m.find(1)==m.end())
        cout<<"删除"<<endl;
    else
        cout<<"未删除"<<endl;
    cout<<m.size()<<endl;
    for(iter = m.begin();iter!=m.end();iter++)
        cout<<iter->first;
}

2. 循环删除

我们在遍历 的时候,可能需要判断条件,然后将满足条件的删除,那么我们同样这么处理

#include<iostream>
#include<map>
using namespace std;
int main(){map<int,int> m;m[1] = 11;m[2] = 22;map<int,int>::iterator iter;for(iter = m.begin(); iter!=m.end();iter++){if(iter->first==1)m.erase(iter);}for(iter = m.begin(); iter!=m.end();iter++)cout<<iter->first<<endl;}


  相关解决方案