deque queue and priority_queue

简介: deque queue and priority_queue stl-deque deque 是双端队列,可实现栈与队列的操作。 deque支持deque_ob[i] 形式的随机存取。 stl-queue queue的基本操作有: 入队,如例:q.push(x); 将x 接到队列的末端。 出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素

deque queue and priority_queue

stl-deque

deque 是双端队列,可实现栈与队列的操作。

deque支持deque_ob[i] 形式的随机存取。


stl-queue

queue的基本操作有:
入队,如例:q.push(x); 将x 接到队列的末端。
出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问队首元素,如例:q.front(),即最早被压入队列的元素。
访问队尾元素,如例:q.back(),即最后被压入队列的元素。
判断队列空,如例:q.empty(),当队列空时,返回true。

查询当前容量,如例:q.size();

微笑不支持[i]下标随机访问和clear()函数。


stl-priority_queue

普通的队列是一种先进先出的数据结构,元素在队尾进队而从队头出队。在优先队列中,元素被赋予优先级,最大(或最小)的元素在队头。

对于自定义的结构体,重载'<'(小于号)就会保证队头元素当前最大,即降序排序。这与sort刚好相反。

头文件为<queue>。此类没有clear()成员函数,只能逐个pop()

常用的操作如下: 
empty()  如果优先队列为空,则返回真  
pop()  删除第一个元素  
push()  加入一个元素  
size()  返回优先队列中拥有的元素的个数  
top()  返回优先队列中有最高优先级的元素

#include<iostream>
#include<queue>
using namespace std;
int main(){
    priority_queue<int ,vector<int>,greater<int>> q;
    q.push(3);q.push(1);q.push(2);
    for(;!q.empty();q.pop()) cout<<q.top();
    cout<<endl;
    {
        priority_queue<int ,vector<int>> q;
        q.push(3);q.push(1);q.push(2);
        for(;!q.empty();q.pop()) cout<<q.top();
    }//此对括号作用域内的q不会与上面的q冲突
    return 0;
}
/*下面是priority_queue的定义
template<typename _Tp, typename _Sequence = vector<_Tp>,
	   typename _Compare  = less<typename _Sequence::value_type> >
    class priority_queue{};
*/
/*123
321
Process returned 0 (0x0)   execution time : 0.124 s
Press any key to continue.
*/


目录
相关文章
|
安全 Android开发
游戏封包,你会了吗?
游戏封包,你会了吗?
1045 1
游戏封包,你会了吗?
|
Python
ArcGIS将Python代码脚本创建为工具箱、自定义工具
本文介绍在ArcMap软件中,通过已有的Python脚本程序,建立新的工具箱并在其中设置自定义工具的方法~
628 1
ArcGIS将Python代码脚本创建为工具箱、自定义工具
|
SQL 存储 弹性计算
2022云栖精选—云数据库RDS重磅功能发布与最佳实践
彭祥 阿里云数据库事业部资深技术专家 RDS产品部负责人 许鸿斌 阿里云数据库事业部高级产品专家
2022云栖精选—云数据库RDS重磅功能发布与最佳实践
阿里云商标注册申请流程新版教程(智能注册申请新手操作笔记)
阿里云商标类型、阿里云商标名称、阿里云商标图样、阿里云商标说明、阿里云商标类别选择、阿里云上传商标申请人材料,阿里云商标注册图文教程快速上手笔记,本文以阿里云商标智能注册申请为例,商标智能注册申请需要用户手动填写商标类型、商标名称、商标图样、商标说明及商标分类表选择等操作,流程较为复杂,阿里云百科来详细说下阿里云商标注册快速上手笔记
740 0
阿里云商标注册申请流程新版教程(智能注册申请新手操作笔记)
|
Java 开发工具
Java实现贪吃蛇大作战小游戏(完整教程+源码)额外实现积分和变速功能(上)
文章目录 1 开发环境及游戏展示 1.1 游戏主界面 1.2 移动界面 1.3 奖励界面 1.4 F加速功能界面 1.5 死亡界面 2 需求分析 3 系统设计 3.1 系统总体功能设计 3.2 系统总体流程设计 4 功能设计 4.1 贪吃蛇移动及加速功能设计 4.2 贪吃蛇吃食物加速及死亡判定功能的设计 4.2.1 贪吃蛇吃食物加速功能的设计 4.2.2 贪吃蛇死亡判定功能的设计 4.3 贪吃蛇主动加速功能的设计 4.4 贪吃蛇奖励机制功能的设计 5 项目结构与项目实现 5.1 项目结构及类间关系 5.2 项目完整源码 5.2.1 Images类
Java实现贪吃蛇大作战小游戏(完整教程+源码)额外实现积分和变速功能(上)
|
存储 安全 区块链
【Web3】今天终于明白什么是 NFT 了
【Web3】今天终于明白什么是 NFT 了
775 0
|
存储 编解码 安全
蓝牙核心规范(V5.2)3.4-深入详解之安全概述
蓝牙核心规范(V5.2)3.4-深入详解之安全概述
1007 0
蓝牙核心规范(V5.2)3.4-深入详解之安全概述
|
弹性计算 运维 监控
基于ECS实例RAM角色的SLS与Splunk集成方案
阿里云日志服务(SLS)通过提供一个Splunk插件(Add-on)实现SLS与Splunk的日志对接, 以便确保阿里云上的所有法规、审计、与其他相关日志能够导入到客户的安全运维中心(SOC)中。本文主要介绍如何在该Splunk Add-on中使用ECS实例RAM角色的鉴权方式,完成日志服务(SLS)到Splunk的日志投递过程。
1644 0
|
Linux Python Windows
Python----setuptools模块用法
Python----setuptools模块用法
537 0
|
存储 弹性计算 边缘计算
将公共云延伸至本地,阿里云推出本地化部署服务云盒Cloud Box
云盒提供的是本地部署软硬一体的全托管云服务,用户无需自行运维,即可享受和公共云一致的稳定性体验和SLA服务。
将公共云延伸至本地,阿里云推出本地化部署服务云盒Cloud Box