C++中priority_queue优先级队列的初始化
优先级队列有3个可输入的参数
priority_queue< type, container, function >
例如:
priority_queue< int, vector<int>, less<int> > pq;
表示初始化一个大顶堆pq,同时由于C++默认为大顶堆,因此在初始化大顶堆时,后两个参数可以省略,写做:
priority_queue< int> pq;
小顶堆堆初始化为:
priority_queue< int, vector<int>, greater<int> > pq;
当你需要进行自定义排序时,你可以构造一个自己的比较器:
class Solution {
public:
int fun(vector<int>& input) {
priority_queue<int,vector<int>,cmp> pq;
//dosomething
return 0;
}
struct cmp{
bool operator() (int a, int b ){
//compare
return true;
}
};
};
当你需要用已有数组对优先级队列进行初始化时:
class Solution {
public:
int fun(vector<int>& input) {
priority_queue<int> pq(input.begin(),input.end());
//dosomething
return 0;
}
};
本文详细介绍了C++中priority_queue的初始化方法,包括大顶堆和小顶堆的设置,以及自定义比较器的实现。示例代码展示了如何使用默认和自定义排序创建优先级队列,并提供了从已有数组初始化队列的示例。通过学习,读者将能够灵活运用priority_queue进行数据处理。

216

被折叠的 条评论
为什么被折叠?



