简介
优先队列(priority_queue)
普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。
它与队列最大的区别是:自动排序!!!
头文件#include <queue>
常见基本声明格式:
priority_queue <int> t; //默认是从大到小排列,即最大优先
priority_queue <int,vector<int>,less<int> >p; //不需要再写#include <vector>头文件,因为他默认的容器就是vector
priority_queue <double,vector<double>,greater<double> >q;//注意后面两个'>' 不要写在一起,">>" 是右移运算符
常见基本操作:以p为例
p.size(); //返回q里面元素个数
p.empty(); //判断q是否为空,返回1就是空
p.push(num); //在队列末尾插入num
p.pop(); // 删除q的第一个元素
p.top(); // 返回q的第一个元素
示例
#include <iostream>
#include <queue>
using namespace std;
int main()
{
priority_queue <int> p; //默认就是从大到小,但是建议还是写全。
//priority_queue <int,vector <int>,less<int> >p;
p.push(90);
p.push(40);
p.push(30);
p.push(50);
p.push(60);
while(!p.empty()) //p不为空
{
cout<< p.top()<<endl;
p.pop();
}
return 0;
}
来源:CSDN
作者:Paris_郑丹丹
链接:https://blog.csdn.net/qq_40161242/article/details/104908497