自定义排序函数
sort 函数,其第三个参数可以是 greater<int>()
,也可以是个 lambda 表达式 [](int a, int b) {return b < a;}
,也可以是个类,不过要重载其函数调用运算符(其中 greater 模板类也是重载了函数调用运算符)也就是 operator()()
。
priority_queue,优先队列自定义函数有两种方法。
方法一,自定义 cmp 函数,重定义小括号
struct cmp1{
bool operator()(int x,int y)
{
return x>y;//小的优先级高 ,从小到大排
}
};
priority_queue<int,vector<int>,cmp1>q2;
方法二,自定义结构体,重定义小于号
struct Student {
string name;
int num;
int age;
bool operator<(const Student &stu) const {
return stu.age < this->age;
}
};
priority_queue<Student> q;
最后更新于