首先我们知道set容器的用途的去重+排序。
而通过自定义重载运算符,我们就可以对set里面的去重和排序操作进行自定义;
比如说我要把去重这个功能改成如果两个元素的差值在k以内就删去一个,就可以这么写:
struct cmp { bool operator () (const int& u, const int& v) const { if (abs(u - v) <= k) return false; return u < v; } }; set<int, cmp> se;
同理排序也是一样的。
不光是set容器,很多stl容器包括函数,像lower——bound(二分)这些都是可以通过重载运算符来自定义他的运算法则的。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。