#include<iostream>
using namespace std;
#include"queue" //priority_queue 本身也属于队列操作,因此也会沿用队列的一个头文件
#include"vector"
#include<functional> //不知道为啥 在最小值优先级的队列规范写法中 没有该头文件就会出现报错
/*总结*/
//优先级队列可以有许多的应用 例如把许多学生的成绩都放入容器中 这时候调用最大优先级队列容器 就可以最大限度的知道成绩的排名
//有关最大值优先级以及最小值优先级队列的区别 案例
void main81()
{
priority_queue<int> p1; //默认情况下就是 最大值优先级队列 即队列中元素顺序始终按照从大到小排列 队头元素为最大值
priority_queue<int, vector<int>, less<int>> p2; //最大值优先级队列的 规范写法
priority_queue<int, vector<int>, greater<int>> p3; //最大值优先级队列的 规范写法
p1.push(56);
p1.push(20);
p1.push(49);
p1.push(100);
p3.push(56);
p3.push(20);
p3.push(49);
p3.push(100);
cout << "最大值优先级的 头部元素:" << p1.top() << endl;
cout << "最小值优先级的 头部元素:" << p3.top() << endl;
cout << "最大值优先级的弹出" << endl; //先进先出
while (p1.size()>0)
{
cout << p1.top() << " ";
p1.pop();
}
cout << endl;
cout << "最小值优先级的弹出" << endl;
while (p3.size()>0)
{
cout << p3.top() << " ";
p3.pop();
}
}
int main()
{
main81(); //有关最大值优先级以及最小值优先级队列的区别 案例
system("pause");
return 0;
}
C++ STL 有关容器部分 priority_queue 优先级队列的基本操作以及认识案例
最新推荐文章于 2022-10-23 15:38:09 发布