优先队列 priority_queue<> Queue STL的一部分
头文件 #include<queue>
性质:还是一个队列,只不过每个元素都有优先级或者权,(对于整数来讲可能就是整数本身的大小),里面的元素都是按照优先级的顺序排列,出队时也是按照优先级从大到小。
基本的操作:
Queue.empty()判断是否为空
Queue.top()取优先级最高的
Queue.pop()出队首元素
Queue.push()在基于优先级的适当位置进队一个
Queue.size()返回队列中元素的个数
优先队列中插入和删除操作都是 O(lgn)
几种用法:
priority_queue<int>Queue
按照整数由大到小的顺序 比如9876
priority_queue<int, vector<int>, greater<int> >Queue
这是按从小到大排 第二个参数是容器类型 第三个参数是比较函数 注意最后两个>间要有空格隔开,否则报错
自定义优先级的:
struct number
{
int value;
int priority;
bool operator<(number n1, number n2)const
{
return n1.priority<n2.priority;
}
};
priority_queue<number>Queue;

本文介绍了C++ STL中的优先队列(priority_queue)的基本概念与使用方法, 包括如何创建、基本操作及其时间复杂度等。此外还展示了如何通过自定义比较函数实现不同排序需求。
4325

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



