读书人

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

发布时间: 2013-03-21 10:08:17 作者: rapoo

队列(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(); //删除列队头部元素

}

读书人网 >编程

热点推荐