set
容器模版需要3個泛型引數,如下:
template
class
set;
第乙個t
是元素型別,必選;
第二個c
指定元素比較方式,預設為less
, 即使用<
符號比較;
第三個a
指定空間分配物件,一般使用預設型別。
因此:
(1) 如果第2個泛型引數你使用預設值的話,你的自定義元素型別需要過載<
運算操作;
(2) 如果你第2個泛型引數不使用預設值的話,則比較物件必須具有()
操作,即:
bool
operator()(const t &a, const t &b)
#include
#include
using
namespace
std;
//首先例項化comp aa; 然後aa(lhs, rhs)進行比較
struct comp
};
int main()
輸出:
13 9 6 5 1
#include
#include
using
namespace
std;
struct comp
};set
my;
set ::iterator it;
int main()
for(it=my.begin();it!=my.end();it++)
cout
<<(*it).id0;}
STL自定義比較器
struct person 自定義的比較器 struct comparebyage sort vec.begin vec.end comparebyage 排序傳入我們自定義的比較器map內部的實現使用的是樹,不能夠直接排序,我們可以將其放在乙個vector中,然後自定義乙個比較器去排序 map m...
STL 自定義比較器
說明 採用sort函式舉例 sort函式能夠接收2個形參 stl中的絕大多數用於查詢 排序的函式的前2個引數基本上都是乙個範圍 first,last 第3個引數一般是乙個比較器仿函式 即 設定大小比較原則compare 下面介紹5種常見的比較器定義手段 自定義普通比較器函式cmp include i...
STL中自定義排序的使用
參考 url url url color red b size large 強烈推薦文章 url b 如果要自己定義stl容器的元素類最好滿足stl容器對元素的要求 b color red b 必須要求 b color quote 1 copy建構函式 2 賦值 操作符 3 能夠銷毀物件的析構函式 ...