C++优先队列简介

C++优先队列简介

一、优先队列

与队列具有类似的特性,即只能从队尾插入元素,从队首删除元素。

此外,优先队列中的最大元素总是位于队首,所以在进行出队时,总是将当前队列中的最大元素出队

二、优先队列的使用

1、首先要添加头文件

#include<queue>

2、优先队列的声明

priority_queue<type,container,function>

其中第一个参数不可以省略,后两个参数可以省略。

type:数据类型

container:实现优先队列的底层容器,要求必须是以数组形式实现的容器

function:元素之间的比较方式

priority_queue<int> q;//定义一个优先队列,按照元素从大到小的顺序出队
//等同于
 priority_queue<int,vector<int>, less<int> >q;
//另外一种按元素从小到大顺序出队
priority_queue<int,vector<int>, greater<int> >q;

3、基本操作

q.top()    //访问队首元素
q.empty() //判断队列是否为空
q.push()   //插入元素到队尾
q.pop()    //出队队首元素
q.size()   //返回队列中元素的个数
示例代码

priority_queue<int> q;
//将元素入队
q.push(1);
q.push(2);
q.push(3);
while(!q.empty()){
    
    
     cout<<q.top()<<endl;//输出队首元素
     q.pop();//出队
}
//从大到小依次输出3 2 1**

猜你喜欢

转载自blog.csdn.net/wenrenfudi/article/details/114486305