C++优先队列 priority_queue

情到浓时终转凉″ 提交于 2020-03-16 23:43:13

简介

优先队列(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;
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!