码迷,mamicode.com
首页 > 其他好文 > 详细

STL - priority_queue(优先队列)

时间:2015-07-08 16:30:46      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:stl   priority_queue   queue   优先队列   

优先级队列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)

demo

#include <iostream>
#include <cstdio>
#include <queue>
#include <algorithm>
#include <functional>

using namespace std;

void printPriorityQ(priority_queue<int> &pq)
{
	while (!pq.empty()) {
		cout << pq.top() << ' ';
		pq.pop();
	}
	cout << endl;
}

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

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

	cout << "front of pq1: " << pq1.top() << endl;
	// front of pq1: 55
	cout << "size of qp1: " << pq1.size() << endl;
	// size of qp1: 4
	printPriorityQ(pq1);
	// 55 33 22 11
	cout << endl;

	// 测试最小值优先级队列
	pq3.push(33);
	pq3.push(11);
	pq3.push(55);
	pq3.push(22);

	cout << "front of pq3: " << pq3.top() << endl;
	// front of pq3: 11
	cout << "size of qp3: " << pq3.size() << endl;
	// size of qp1: 4
	//printPriorityQ(pq3); // 不能再用这个函数
	while (!pq3.empty()) {
		cout << pq3.top() << ' ';
		pq3.pop();
	}
	cout << endl;
	// 11 22 33 55
	cout << endl;
}

int main()
{
	priorityQueueInit();

	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

STL - priority_queue(优先队列)

标签:stl   priority_queue   queue   优先队列   

原文地址:http://blog.csdn.net/zyq522376829/article/details/46804367

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!