sort 函数,其第三个参数可以是 greater<int>(),也可以是个 lambda 表达式 [](int a, int b) {return b < a;},也可以是个类,不过要重载其函数调用运算符(其中 greater 模板类也是重载了函数调用运算符)也就是 operator()()。
greater<int>()
[](int a, int b) {return b < a;}
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;
最后更新于2年前