排序
sort(nums.begin(),nums.end(),std::less<int>()); // 从小到大
sort(nums.begin(),nums.end(),std::greater<int>()); //从大到小
is_sorted(nums.begin(),nums.end(),std::less<int>()); // 从小到大
is_sorted(nums.begin(),nums.end(),std::greater<int>()); // 从大到小
优先队列
比较函数是比较优先级低的,比如参数 'graeter' 产生的结果是小数字优先级高,优先出队
priority_queue<object,container<object>=vector<object>,cmp=less<object> > que
priority_queue<int> que; //默认较小数排在前面
比较函数cmp
可用在sort中和优先队列的定义中
直接在结构体里面重载
struct Edge{
int u,e,w;
bool operater < (Edge e) const{ //const 不可以少
return w< e.w;
}
};
直接写一个cmp函数
bool cmp (const Edge e1,const Edge e2){
return e1.w<e2.w;
}
pair
pair<int,int> 是一个键值对,默认是按照第一个值来排序,若第一个值相等则会按照第二个值来排序
pair可以利用<,<=,>,>=,!= 等比较符号。