c++ priority_queue(优先级队列)
priority_queue是一个容器适配器,提供了常数时间的最大元素查找。
通常实现为堆。堆是一种数据结构,其中最大(或最小)元素始终位于顶部。
priority_queue是一个模板类,定义在头文件中。它有三个模板参数:元素类型、容器类型和比较函数类型(可选)。
默认情况下,它使用std::vector作为其底层容器 。
成员函数:

构造:
#include <iostream>
#include <queue>
using namespace std;
int main ()
{
int myints[]= {10,60,50,20};
priority_queue<int> q1;//默认是大元素在队首
priority_queue<int> q2(myints,myints + 6);//6的意思是有6个元素,多余的元素默认为0。如果比原来的数组元素少,会丢弃原数组部分元素
priority_queue<int, vector<int>, greater<int>> q3(myints,myints + 8);//小元素在队首
while(!q1.empty()){
cout << q1.top() << endl;
q1.pop();
}
cout << "--------" << endl;
while(!q2.empty()){
cout << q2.top() << endl;
q2.pop();
}
cout << "--------" << endl;
while(!q3.empty()){
cout << q3.top() << endl;
q3.pop();
}
return 0;
}
浙公网安备 33010602011771号