C 中實現對map按照value值進行排序

2021-06-18 05:38:07 字數 533 閱讀 7933

map的兩個值分別為key值和value值,map是按照key值進行排序的,但有時候需要按照value值進行排序,並且按照value的順序輸出key值,排序**如下:

typedef pairpair;  

int cmp(const pair& x, const pair& y)

mapm;

vectorvec;

for (map::iterator curr = m.begin(); curr != m.end(); ++curr)

sort(vec.begin(), vec.end(), cmp);

將map的key和value組成乙個新的結構pair,乙個pair型的vector儲存map中的所有內容,對vecor按照value值進行排序。按順序輸出key:

for(vector::iterator curr = vec.begin(); curr != vec.end(); ++curr)

{ cout<<(*curr).first<

C 中對map按照value進行排序

實現方法 如果想要對map中元素按照value進行排序,先把map的元素按pair形式插入到vector中,再對vecotr進行排序 用乙個自定義的比較函式 這樣就可以實現對map的value排序了。以下 實現了按照map中的value進行排序的功能,還給出了遍歷map的幾種方式,僅供參考哈,各位。...

Map中按照value的大小進行排序

把map中的資料按照value的大小進行排序並輸出是乙個比較常見的需求.思路 1 將map中的所有entry轉化為乙個arraylist list cityinfolist new arraylist cityinfo.entryset 2 呼叫collections.sort 方法,對元素 map...

Map分別按照Key和value排序

讀取檔案,按照檔案內容中,名字出現的次數排序輸出,關鍵點在於map按照value排序,這篇文章有詳細的描述.value排序 public class stringsort catch filenotfoundexception e catch ioexception e list maplist n...