STL——容器(Map & multimap)的排序與遍歷


1. Map & multimap 的排序與遍歷

  • map<T1,T2,less<T1> >  mapA;    //該容器是按鍵的升序方式排列元素。如果未指定less<T1> 函數對象,默認采用less<T1>函數對象。
  • map<T1,T2,greater<T1>> mapB;   //該容器是按鍵的降序方式排列元素。
  • less<T1> 與 greater<T1>    可以替換成其它的函數對象functor。
  • 可編寫自定義函數 對象以進行自定義類型的比較,使用方法與set構造時所用的函數對象一樣。

示例代碼:

 1 #include <iostream>
 2 #include <map>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     map<int, string> mapStu1;    //默認為升序,與  map<int, string, less<int>> mapStu1; 同效
 9 
10     mapStu1.insert(pair<int, string>(1, "內容A"));
11     mapStu1.insert(pair<int, string>(2, "內容B"));
12     mapStu1.insert(pair<int, string>(3, "內容C"));
13 
14     for (map<int, string>::iterator it = mapStu1.begin(); it != mapStu1.end(); it++)        //map的遍歷
15     {
16         cout << "mapStu1的第 " << it->first << "個參數為: " << it->second <<endl;
17     }
18 
19     cout << endl;
20 
21     map<int, string, greater<int>> mapStu2;        //按鍵的降序方式排列元素
22 
23     mapStu2.insert(pair<int, string>(1, "內容A"));
24     mapStu2.insert(pair<int, string>(2, "內容B"));
25     mapStu2.insert(pair<int, string>(3, "內容C"));
26 
27     for (map<int, string>::iterator it = mapStu2.begin(); it != mapStu2.end(); it++)
28     {
29         cout << "mapStu2的第 " << it->first << "個參數為: " << it->second << endl;
30     }
31     
32     return 0;
33 }

打印結果:

 

  

 

 

==========================================================================================================================


免責聲明!

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



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