优先级队列priority_queue

时间:2022-05-05 17:36:52

1、概念:

             (1) 、最大值优先级队列、最小值优先级队列

             (2)、优先级队列适配器 STLpriority_queue

             (3)、用来开发一些特殊的应用,请对stl的类库,多做扩展性学习

2、示例代码:

#include<iostream>
using namespace std;
#include<queue>
#include<vector>
#include<functional>


void test()
{
priority_queue<int> p1; // 默认情况下是 最大优先级队列
priority_queue<int, vector<int>, less<int>> p2; // less 提前定义好的预定义函数 谓词
priority_queue<int, vector<int>, greater<int>> p3; // 最小值优先级队列

p1.push(33);
p1.push(11);
p1.push(55);
p1.push(22);

cout << "对头元素:"<<p1.top() << endl;
cout << "队列的大小:"<<p1.size() << endl;
while (p1.size()>0)
{
cout << p1.top() << " ";
p1.pop();
}
cout << endl;
cout << "测试最小值优先级队列:" << endl;
p3.push(33);
p3.push(11);
p3.push(55);
p3.push(22);

cout << "最小值优先级队列 对头元素:" << p3.top() << endl;
cout << "队列的大小:" << p3.size() << endl;
while (p3.size()>0)
{
cout << p3.top() << " ";
p3.pop();
}
cout << endl;
}

int main(void)
{
test();
return 0;
}