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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM