map删除数据

map删除数据

 1 //删除 数据
 2     //1 通过关键字key=1删除
 3     mp.erase(1);
 4     //2 通过迭代器删除
 5     map<int,string>::iterator iter=mp.find(2);
 6     mp.erase(iter);
 7     //3删除两个迭代器所指向的范围 [,)左闭右开区间
 8     map<int,string>::iterator itera=mp.find(6);
 9     iter=mp.find(4);
10     mp.erase(iter,itera);
11     //4删除全部的
12     mp.erase(mp.begin(),mp.end());
13     mp.clear();

测试代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 void show(map<int,string>& mp)
 4 {
 5     map<int,string>::iterator iter=mp.begin();
 6     while(iter!=mp.end())
 7     {
 8         cout<<iter->first<<" "<<iter->second<<endl;
 9         iter++;
10     }
11     cout<<endl;
12 }
13 int main()
14 {
15     //构造 map
16     map<int,string> mp;
17 
18     mp.insert({0,"map 0"});//使用{}
19     mp.insert({1,"map 1"});//使用{}
20     mp.insert({2,"map 2"});//使用{}
21     mp.insert({3,"map 3"});//使用{}
22     mp.insert({4,"map 4"});//使用{}
23     mp.insert({5,"map 5"});//使用{}
24     mp.insert({6,"map 6"});//使用{}
25     mp.insert({7,"map 7"});//使用{}
26     mp.insert({8,"map 8"});//使用{}
27 
28     //删除 数据
29     //1 通过关键字删除
30     mp.erase(1);
31     show(mp);//输出map
32     
33     //2 通过迭代器删除
34     map<int,string>::iterator iter=mp.find(2);
35     mp.erase(iter);
36     show(mp);//输出map
37     
38     //3删除两个迭代器所指向的范围 [,)左闭右开区间
39     map<int,string>::iterator itera=mp.find(6);
40     iter=mp.find(4);
41     mp.erase(iter,itera);
42     show(mp);//输出map
43     
44     //4删除全部的
45     mp.erase(mp.begin(),mp.end());
46     mp.clear();
47     show(mp);//输出map
48 
49     return 0;
50 }

运行结果:

 1 0 map 0
 2 2 map 2
 3 3 map 3
 4 4 map 4
 5 5 map 5
 6 6 map 6
 7 7 map 7
 8 8 map 8
 9 
10 0 map 0
11 3 map 3
12 4 map 4
13 5 map 5
14 6 map 6
15 7 map 7
16 8 map 8
17 
18 0 map 0
19 3 map 3
20 6 map 6
21 7 map 7
22 8 map 8

猜你喜欢

转载自www.cnblogs.com/NirobertEinteson/p/11967623.html