實現方法:如果想要對map中元素按照value進行排序,先把map的元素按pair形式插入到vector中,再對vecotr進行排序(用乙個自定義的比較函式),這樣就可以實現對map的value排序了。
以下**實現了按照map中的value進行排序的功能,還給出了遍歷map的幾種方式,僅供參考哈,各位。
#define _crt_secure_no_warnings
#include
#include
#include
#include
#include
using
namespace std;
typedef
struct my_map_key
return
false;}
}test;
// 自定義map列印函式:使用for_each遍歷列印
inline
void
display
(mapint>
::value_type & v)
// 按照value進行比較
typedef pairint> pair;
bool
cmp_by_value
(const pair& v1,
const pair & v2)
// 按照value進行比較
struct cmpbyvalue};
intmain()
// 題外話:遍歷 map 的兩種方式
/*for_each(m.begin(), m.end(), display);
for (auto iter = m.begin(); iter != m.end(); ++iter)
*/return0;
}
以下是程式的輸出:
m.second =
1 m.first.v2 =
3m.second =
2 m.first.v2 =-3
m.second =
3 m.first.v2 =
32m.second =
4 m.first.v2 =
13m.second =
5 m.first.v2 =
112m.second =
6 m.first.v2 =
44m.second =
7 m.first.v2 =-2
m.second =
8 m.first.v2 =
9
感謝閱讀 C 中實現對map按照value值進行排序
map的兩個值分別為key值和value值,map是按照key值進行排序的,但有時候需要按照value值進行排序,並且按照value的順序輸出key值,排序 如下 typedef pairpair int cmp const pair x,const pair y mapm vectorvec fo...
Map中按照value的大小進行排序
把map中的資料按照value的大小進行排序並輸出是乙個比較常見的需求.思路 1 將map中的所有entry轉化為乙個arraylist list cityinfolist new arraylist cityinfo.entryset 2 呼叫collections.sort 方法,對元素 map...
Map集合按照value和key進行排序
最近由於特殊的業務需求,需要做相關資料排序,下面就貼出其中的將map集合中按照value或者key進行排序的 後面再具體詳說。1 2 map 集合排序3 param map4 return5 6public static extends comparable mapsortmap mapmap 72...