STL学习之优先队列(Priority_queue)(1)

来源:互联网 发布:java雷霆战机2源代码 编辑:程序博客网 时间:2024/06/16 19:38

STL学习之优先队列(Priority_queue)(1)


在学习到数据结构中的栈和队列这一块时,接触到了STL库中的queue有关的函数。
优先队列(priority_queue)是队列(queue)的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序。
在队列(queue)中,有以下几项基本操作:
1.c.pop() : 返回队列头部数据
2.c.push(elem) : 在队列尾部增加elem数据
3.c.pop() : 队列头部数据出队
4.c.empty() :判断队列是否为空
5.c.size():返回队列中数据的个数
由此可见,queue的基本操作与stack(栈)类似。

一、标准库默认使用元素类型的<操作符来确定它们之间的优先级关系。

priority_queue<int> pq;

二、数据越小,优先级越高

priority_queue<int, vector<int>, greater<int> > pq1;

附上一段简单的代码
#include <bits/stdc++.h>using namespace std;int main(){int array[] = {1, 5, 2, 10, 8, 3};priority_queue<int> pq;priority_queue<int, vector<int>, greater<int> > pq1;for (int i = 0; i < 6; i++){pq.push(array[i]);pq1.push(array[i]);}for (int i = 0; i < 6; i++){cout << pq.top() << " ";pq.pop();}cout << endl;for (int i = 0; i < 6; i++){cout << pq1.top() << " ";pq1.pop();}cout << endl;return 0;}

0 0
原创粉丝点击