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

本文详细介绍了队列和优先队列的概念、特点、成员函数及使用示例,包括如何判断空、添加元素、删除元素等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值