首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

行列(queue)优先队列(priority_queue)简介

2013-03-21 
队列(queue)优先队列(priority_queue)简介队列(queue)我们把queue叫作容器适配器,因为它本身是通过deque来

队列(queue)优先队列(priority_queue)简介
队列(queue)

我们把queue叫作容器适配器,因为它本身是通过deque来实现的.相当于一个精简版,功能更弱的deque.

主要有如下成员函数

empty() 如果队列为空返回真

pop() 删除顶部元素

push() 加入一个元素

size() 返回队列中拥有的元素个数

back() 返回队列尾部元素

front()返回队列头部元素.

 

我们知道队列的特点就是先进先出,进的时候就是push嘛,在屁股后面添加元素,出嘛就是pop删除头部的元素,

当然了一般删除之前会先通过front()获取最前面那个元素.

 

示例:

#include<queue>

using namespace std;

queue<int> qu;

bool isEmpty = qu.empty(); //此时为空返回true

qu.push(11);

qu.push(22);

int head = qu.front(); //11

int end = qu.back(); //22

qu.pop();//删除头部元素11

 

优先队列(priority_queue)

priority_queue也是适配器容器,它的通过vector实现的.它本质上是一个堆(heap).

它也有入队出队.但是不是先入先出.而是优先级最大的先出.priority_queue默认是大堆

主要成员函数

empty() 如果队列为空返回真

pop() 删除对顶元素

push() 加入一个元素

size() 返回优先队列中拥有的元素个数

top() 返回优先队列对顶元素

在默认的优先队列中,优先级高的先出队

 

使用示例:

#include <queue>

using namespace std;

 

priority_queue<int> qq;

qq.push(2);

qq.push(5);

qq.push(3);

qq.push(4);

 

while(! qq.empty())

{

   cout<<qq.top()<<endl;  //打印的结果是5 4 3 2 ,从大到小的顺序.

   qq.pop(); //删除列队头部元素

}

热点排行