使用仿函數實現map的自定義排序

自定義關鍵字比較操作

對於有序容器(map multimap set multiset等),關鍵字類型必須定義元素比較的方法。默認情況下,標準庫使用關鍵字類型的<運算符來比較兩個關鍵字。也就是說,默認的map是按照關鍵字升序排列的。如果想要使map按照關鍵字降序排列,需要提供自己定義的操作來代替關鍵字上的<運算符。

使用仿函數

在頭文件xfunctional裏有兩個仿函數greaterless,是STL實現的用來實現升序和降序的比較操作。
例如使map按關鍵字降序排列:

map<int,int,greater<int>> mp;

注意

如果map內的數據元素是自定義數據結構,則不能使用這種方式,需要老老實實自己寫比較函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章