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 }
打印結果:
==========================================================================================================================