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