admin管理员组文章数量:1624332
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;
}
};
本文标签: 优先级队列初始化priorityqueue
版权声明:本文标题:C++中priority_queue优先级队列的初始化 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728896852a1178522.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论