map删除元素

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;

}


猜你喜欢

转载自blog.csdn.net/qq_34465787/article/details/80452355
今日推荐