STL自定義比較器

2021-08-10 13:35:09 字數 915 閱讀 3090

struct person

//自定義的比較器

struct comparebyage

;sort(vec.begin(),vec.end(),comparebyage());//排序傳入我們自定義的比較器

map內部的實現使用的是樹,不能夠直接排序,我們可以將其放在乙個vector中,然後自定義乙個比較器去排序

map

maptest;

maptest["zhangsan"]=2;

maptest["lisi"]=3;

...vector

string,int>>vec;//初始化vector

//定義比較器

struct compare

}//排序

sort(vec.begin(),vec.end(),compare());//呼叫自己的比較器函式

我們來看乙個例項:

struct ptr_compare//自定義比較器按照key中的指標指向的內容排序

};struct comp//自定義比較器按照value排序

}; shared_ptr

s2};

shared_ptr

s3};

shared_ptr

s4};

shared_ptr

s5};

ptr_map[s1]="0";

ptr_map[s2]="1";

ptr_map[s3]="2";

ptr_map[s4]="3";

for_each(ptr_map.begin(),ptr_map.end(),(pair,string>p)

);}

STL 自定義比較器

說明 採用sort函式舉例 sort函式能夠接收2個形參 stl中的絕大多數用於查詢 排序的函式的前2個引數基本上都是乙個範圍 first,last 第3個引數一般是乙個比較器仿函式 即 設定大小比較原則compare 下面介紹5種常見的比較器定義手段 自定義普通比較器函式cmp include i...

C 自定義迭代器(STL)

一.iterator traits 迭代器萃取機 include template struct iterator traits 假如我們定義了乙個迭代器myiterator template void my swap iter a,iter b 當函式 以乙個迭代器為引數時,會出現這樣乙個尷尬,t...

python3 自定義比較器

摘要 在一些場景中,需要重新對已有的資料排序,可能所給出的資料型別或者資料數量較多,需要給定排序規則。import functools def by score t1,t2 if t1 0 t2 0 return 1 elif t1 0 t2 1 return 1 elif t1 1 t2 1 re...