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...