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