C++ STL 中set存储元素的默认顺序是升序的.但有的时候我们想要一个降序的.或者合并区间的(下面会有解释)顺序.这时候就要用到自定义比较.
set的自定义比较函数是用重新定义()这个符号.
struct cmp{
bool operator() (const int &u , const int &v)const{
if(abs(u,v)<=k)return false;
return u<v;
}}
上面这个自定义比较函数就是重新定义了一个合并区间的set.含义是.如果在set中已经含有了一个u,与将要插入的元素v相差小于k,那么就不插入他了.
正常的变成降序很简单.
struct cmp{
bool operator() (const int &u , const int &v)const{
return u>v;
}}