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