21.Priority_Queue的常见用法详解优化-[STL模板]


1.priority_queue的定义

<mark>一个元素</mark>

priority_queue<typename> name;
/* priority_queue<int> a; priority_queue<char> b; */

2.priority_queue内元素访问

<mark>top()访问 无迭代器</mark>

#include <bits/stdc++.h>
using namespace std;
int main()
{
	priority_queue<int> a;
	a.push(3);
	a.push(4);
	a.push(1);
	cout<<a.top();
	return 0;
}

输出:4 【默认数字越大 优先级越高】


3.priority_queue常用函数

(1)push(x)
将x压入队列

(2)top()
取队列首元素(优先级最高)

(3)pop()
队列首元素出列

(4)empty() <mark>bool类型</mark>
判断队列是否为空

(5)size()
获取队列的元素总数


4.priority_queue优先级设置

<mark>①基本数据类型</mark>

priority_queue<int,vector<int>, greater<int>(排序规则 可用结构体写) > a;
//代表数字越小 优先级越大 默认数字越大优先级越大

<mark>②结构体优先级设置</mark> cmp和这里的是相反的 优先队列的理解

还没弄懂