map 對key 或 value排序

2021-07-22 11:08:21 字數 680 閱讀 3424

按key排序:

我們借助map提供的引數介面,為它指定相應compare類,就可以實現對map按key排序,是在建立map並不斷的向其中新增元素的過程中就會完成排序。

該如何實現map的按value排序呢? 

第一反應是利用stl中提供的sort演算法實現,這個想法是好的,不幸的是,sort演算法有個限制,利用sort演算法只能對序列容器進行排序,就是線性的(如vector,list,deque)。map也是乙個集合容器,它裡面儲存的元素是pair,但是它不是線性儲存的(前面提過,像紅黑樹),所以利用sort不能直接和map結合進行排序。

雖然不能直接用sort對map進行排序,那麼我們可不可以迂迴一下,把map中的元素放到序列容器(如vector)中,然後再對這些元素進行排序

#include #include #include #include #include using namespace std;

typedef pairpair;

int main() );

// sort(name_score_vec.begin(), name_score_vec.end(), cmp_by_value);

for (int i = 0; i != name_score_vec.size(); ++i)

return 0;

}

Map集合排序 根據value對key進行排序

在流水的業務中,碼出最優雅的 描述 有若干個鍵值對格式的json字串,根據其中的value進排序,取出其中的排位靠前的一半以上的key值,json資料為 這是業務上的乙個需求,於是針對這個需求就有了對map的排序一系列探索 前言 對於json轉map本篇就不介紹,直接從對map的排序開始,其他型別可...

map按key和value排序

map集合按照key和value排序 按value排序 利用集合中的entry封裝,然後利用內部函式描述比較過程,這裡有兩種方式,可以發現其中的o1和o2表示map中的值,o1其實是偏大的那乙個,然後返回的時候其實是將較大的放在後面。mapmap new treemap map.put b 1 ma...

Map排序(按key排序,按value排序)

主要分兩種,按鍵排序 按值排序。而且,按key排序主要用於treemap,而按value排序則對於map的子類們都適用。按key排序主要用於treemap,可以實現按照key值的大小,在物件插入時直接插入到合適的位置,保持map的順序性。來看treemap的建構函式 treemap comparat...