您的位置:首页 > 产品设计 > UI/UE

STL之priority_queue

2016-06-26 20:09 417 查看
priority_queue是优先级队列,主要应用于需要自动排序的情况,比如录入成绩。

一、priority_queue的基本操作

#include<iostream>
#include<queue>
#include<functional>

using namespace std;

void func1() {
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 << " 最大值优先队列队头为: "<< pq1.top() << endl;
cout << " 最大值优先队列大小为: " << pq1.size() << endl;

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

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

cout << " 最大值优先队列队头为: " << pq2.top() << endl;
cout << " 最大值优先队列大小为: " << pq2.size() << endl;

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

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

cout << " 最小值优先队列队头为: " << pq3.top() << endl;
cout << " 最小值优先队列大小为: " << pq3.size() << endl;

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

int main(){
func1();
system("pause");
return 0;
}


输出结果:



可以看到

priority_queue<int> pq1;


默认就是最大值优先,

priority_queue<int, vector<int>, less<int>> pq2;


这种形式也是最大值优先;

priority_queue<int, vector<int>, greater<int> > pq3;


这种形式是最小值优先。其中的less和greater需要头文件,是预先定义好的函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stl