STL学习之优先队列(Priority_queue)(1)
2016-10-12 14:28
666 查看
STL学习之优先队列(Priority_queue)(1)
[align=left][/align]
[align=left]在学习到数据结构中的栈和队列这一块时,接触到了STL库中的queue有关的函数。[/align]
优先队列(priority_queue)是队列(queue)的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序。
[align=left]在队列(queue)中,有以下几项基本操作:[/align]
[align=left]1.c.pop() : 返回队列头部数据[/align]
[align=left]2.c.push(elem) : 在队列尾部增加elem数据[/align]
<
4000
div align="left">3.c.pop() : 队列头部数据出队
[align=left]4.c.empty() :判断队列是否为空[/align]
5.c.size():
返回队列中数据的个数
[align=left]由此可见,queue的基本操作与stack(栈)类似。[/align]
[align=left]
[/align]
一、标准库默认使用元素类型的<操作符来确定它们之间的优先级关系。
[align=left]priority_queue<int> pq;[/align][align=left]
[/align]
二、数据越小,优先级越高
[align=left]priority_queue<int, vector<int>, greater<int> > pq1;[/align][align=left]
[/align]
[align=left]附上一段简单的代码[/align]
#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; }
相关文章推荐
- 标准模板库(STL)学习指南之priority_queue优先队列
- 【用法详解】C++-STL 队列queue与优先队列priority_queue的用法详解与学习心得
- C++ STL学习笔记7--priority_queue优先队列
- C++STL之priority_queue优先队列容器
- STL中优先队列(priority_queue)的相关操作
- [置顶] STL之priority_queue的用法,优先队列
- STL---priority_queue 优先队列概述。
- 【优先队列】【堆】STL之priority_queue、make_heap()、push_heap()、pop_heap()、容器适配器
- ACM学习历程19——queue队列容器与priority_queue优先队列容器
- [C++] STL 优先队列 priority_queue
- STL 之 stack&queue&priority_queue 栈,队列与优先队列
- STL之优先队列priority_queue
- 【学习笔记】关于优先队列 Priority_queue
- UVa - 136 - Ugly Numbers(STL - 优先队列priority_queue)
- STL 优先队列priority_queue 使用练习
- [转]: STL priority_queue 优先队列
- poj3253 Fence Repair 优先队列,C++STL中priority_queue的使用
- 【学习笔记】关于优先队列 Priority_queue
- STL学习笔记6 -- 栈stack 、队列queue 和优先级priority_queue 三者比较
- [C++ STL] 优先队列容器 priority_queue