C++提高——优先级队列priority_queue

  • 最大值优先级队列、最小值优先级队列
  • 优先级队列适配器 STL priority_queue
	priority_queue<int, deque<int>> 	pq;
	priority_queue<int, vector<int>> 	pq;
	
	pq.empty()
	pq.size()
	pq.top()
	pq.pop()
	pq.push(item)


#include <iostream>
using namespace std;
#include "queue"

void main81()
{
	//priority_queue<int> p1,p2; //默认情况下,最大值优先级队列
	priority_queue<int, vector<int>, less<int> > p1; //提前定义好的预定义函数
	priority_queue<int, vector<int>, greater<int>> p2; //最小值优先级队列
	p1.push(33);
	p1.push(11);
	p1.push(55);
	p1.push(22);
	cout <<"队头元素" << p1.size() << endl;
	cout <<"队列大小" << p1.top() << endl;

	while (p1.size() > 0)
	{
		cout << p1.top() << " ";
		p1.pop();
	}
	cout << endl;

	cout << "测试  最小优先级队列" << endl;

	p2.push(33);
	p2.push(11);
	p2.push(55);
	p2.push(22);
	
	while (p2.size() > 0)
	{
		cout << p2.top() << " ";
		p2.pop();
	}
}
void main()
{
	main81();
	cout<<"hello..."<<endl;
	system("pause");
	return ;

}
struct cmp1{
	    bool  operator ()  ( int  a , int  b  ){
	   	      return a > b;
	   } 
}; 
struct cmp2{
	   bool operator ()( int s ,int d ){
	   	   return s<d;
	   }
};
priority_queue<int> q;//默认是从大到小

priority_queue<int, vector<int> ,less<int> >q;//从大到小排序

priority_queue<int, vector<int>, greater<int> >q;//从小到大排序

priority_queue < int , vector<int> , cmp2  > q;//从大到小

priority_queue < int , vector<int> , cmp1 > q;//从小到大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值