自定义排序函数

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;

最后更新于