關於MAP鍵值排序的一些筆記

2021-10-11 21:28:09 字數 983 閱讀 2665

map預設按key公升序排序,

unordered_map無缺省排序

map定義:

template < class key, class t, class compare = less, class allocator = allocator> > class map;

第三個引數常稱為函式物件,我們可以對此處進行重寫達到排序目的

自定義map排序規則(注意僅能對key排序)

// 自己編寫的compare,實現按照字串長度進行排序

struct cmpbykeylength

};

int main()

sort(vec.bengin(),vec.end(),cmp)

高版本c++編譯器可以這麼寫

sort(vec.begin(),vec.end(),[&](const pair a,const pair b))

借用vector排序(可以對value排序)

typedef pairpair;

bool cmp_by_value(const pair& lhs, const pair& rhs)

struct cmpbyvalue

};int main()

vectorvec;

map::iterator iter=m.begin();

/*將map存入vector*/

for(;iter!=m.end();iter++)

sort(vec.begin(),vec.end(),[&](const p m1,const p m2){

double d1=pow(m1.second.x-x,2)+pow(m1.second.y-y,2);

double d2=pow(m2.second.x-x,2)+pow(m2.second.y-y,2);

return d1參考:

c++的map排序

關於map的一些深入問題(Python)

map用法 a map int,12 對可迭代物件的每個元素進行int函式對映,生成迭代器 list a 1,2 a map lambda x,y x y,1,2 3,4 等價於 map f,iter1,iter2 一一對應傳參 list a 4,6 a map lambda x,y x y,1,2...

關於排序的一些整理

第一部分 stl中的sort排序 在stl中,排序是通過使用函式模板sort來完成的。這裡給出一些使用的例子 sort v.begin v.end 整個容器v按非降序排列 sort v.begin v.end greater 將整個容器降序排列 sort v.begin v.begin v.end ...

關於JDBC的一些筆記

1 jdbc連線資料庫 首先要找到相應的資料庫驅動,指定連線的資料庫 載入驅動 class.forname 驅動名 獲得連線 connection con drivermanager.getconnection 資料庫連線 使用者名稱 密碼 2 執行sql語句 statement prepareds...