改變map根據key值排序策略可以過載()運算子
希望使用map根據value排序
map中元素型別是pair,第乙個想到的是過載pair的《運算子
但是標頭檔案為pair過載了《運算子
templateinline bool
operator& __x, const pair<_t1 _t2>& __y)
直接過載的話,不同的編譯器可能會報錯
所以還是只能寫乙個比較函式,將map中的pair轉存到vector中,呼叫序列容器排序方法sort
#include "stdafx.h"
#include #include #include #include #include using namespace std;
typedef pairpair;
ostream& operator << (ostream& out, const pair& p)
int cmp(const pair& left, const pair& right)
int _tmain(int argc, _tchar* argv)
{ maptest;
test.insert(make_pair(4,3));
test.insert(make_pair(2,5));
test.insert(make_pair(1,3));
test.insert(make_pair(-2,5));
vectortmp(test.begin(),test.end());
sort(tmp.begin(),tmp.end(),cmp);
for(auto p=tmp.begin();p!=tmp.end();p++)
{ cout<
結果:
C map容器 根據value的值進行排序
map容器會自動根據key的值進行排序,要想要map容器中的內容根據value中的值進行排序 可先把map中的內容拷貝到vector容器中,然後再用sort排序 pointcloud.h typedef struct pitarea pit static bool cmp by value cons...
c map 對key和value排序
1.對key值排序 使用提供的less grater或自定義排序 include include include include include include std greater using namespace std 按key的長度公升序排列 struct cmpbykeylength in...
Lua Table根據value排序
使用lua開發需要把有用的資料全部存進table裡,lua也提供了乙個sort介面來給table排序,但是sort的實現也是基於氣泡排序,他預設table的key是從1開始的,這樣就會造成當我們的key是一些特殊的標誌位,比如遊戲中揹包資料的guid,就會無法正常排序。所以我們需要單獨封乙個介面來實...