58STL_priority_queue
基本概念示例代码
基本概念
priority_queue 优先级队列,不是FIFO,而是始终把最优先级的数据放在队首
也是自适应容器(容器适配器),不能使用list类型
包含:
最大值优先级队列 priority_queue< int, deque< int >> pq;最小值优先级队列 priority_queue< int, deque< int >, greater> pq;
常用函数: pq.empty()、pq.size()、pq,top()、pq.pop()、pq.push(item)
示例代码
#include <iostream>
#include <queue>
#include <vector>
#include <deque>
using namespace std
;
int main()
{
priority_queue
<int> pq
;
pq
.push(10);
pq
.push(5);
pq
.push(-1);
pq
.push(20);
cout
<< "优先级队列里一共有:" << pq
.size() << " 个数据" << endl
;
while(pq
.size() != 0)
{
cout
<< "从优先级队列里面删除:" << pq
.top() <<endl
;
pq
.pop();
}
cout
<< "优先级队列里一共有:" << pq
.size() << " 个数据" << endl
;
cout
<< endl
;
priority_queue
<int, deque
<int>, greater
<int>> pq2
;
pq2
.push(10);
pq2
.push(5);
pq2
.push(-1);
pq2
.push(20);
cout
<< "最小值优先级队列里一共有:" << pq2
.size() << " 个数据" << endl
;
while(pq2
.size() != 0)
{
cout
<< "从优先级队列里面删除:" << pq2
.top() << endl
;
pq2
.pop();
}
return 0;
}