点击蓝字
关注我们
首先,
在C++中,队列(queue)是一种先进先出(FIFO)的数据结构,可以用来存储和访问数据。C++标准库中提供了队列的实现,可以通过包含头文件<queue>来使用。
C++中的队列是 由二叉堆 实现的。 默认是使用 大根堆 实现。
优先队列的 基本操作 :
empty() :如果队列为空返回真
pop() : 删除队顶元素
push() 入队一个元素
size() 返回优先队列中拥有的元素个数
top() 返回优先队列队顶元素
以下将从priority_queue、
priority_queue<int,vector<int>,greater<int>>、
priority_queue<int,vector<int>,less<int>>
来进行讲解和代码实现
1.priority_queue(大根堆实现);
运行代码:
#include<iostream>
#include<queue>//也可以用万能头文件:#include<bits/stdc++.h>
using namespace std;
int stl[10]={3,5,6,2,1,-8,10,4,-7,-6};
int main(){priority_queue<int> q;for (int i=0;i<10;i++){q.push(stl[i]);}for (int i=0;i<10;i++){cout<<q.top()<<endl;q.pop();}
}
运行结果(输出):
2.priority_queue<int,vector<int>,greater<int>> (最小值队列实现)
运行代码:
#include<iostream>
#include<queue>//也可以用万能头文件:#include<bits/stdc++.h>
using namespace std;
int stl[10]={3,5,6,2,1,-8,10,4,-7,-6};
int main(){priority_queue<int, vector<int>, greater<int>> q;for (int i=0;i<10;i++){q.push(stl[i]);}for (int i=0;i<10;i++){cout<<q.top()<<endl;q.pop();}
}
运行结果(输出):
3.priority_queue<int,vector<int>,less<int>>(最大值队列实现)
运行代码:
#include<iostream>
#include<queue>//也可以用万能头文件:#include<bits/stdc++.h>
using namespace std;
int stl[10]={3,5,6,2,1,-8,10,4,-7,-6};
int main(){priority_queue<int, vector<int>,less<int>> q;for (int i=0;i<10;i++){q.push(stl[i]);}for (int i=0;i<10;i++){cout<<q.top()<<endl;q.pop();}
}
运行结果(输出):
小编创作不易,请一键三联支持一下,我们下期再见!
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。