queue的定义

queue:队列,实现了一个先进先出的容器,需添加头文件#include
queue name;

queue容器内元素的访问

由于队列本身就是一种先进先出的限制性数据结构,只能通过front()来访问队首元素,或者是通过back()来访问队尾元素。

#include <stdio.h>
#include <queue>
using namespace std;
int main()
{queue<int> q;for(int i = 1; i <= 5; i++){q.push(i); // push(i)用以将i压入队列,因此依次入队1 2 3 4 5}printf("%d %d\n", q.front(), q.back()); // 输出结果是1 5return 0;
}
1 5

queue常用函数实例

(1) push()
push(x):将x进行入队,时间复杂度为O(1)。

(2) front()、back()
front()和back()可以分别获得队首元素和队尾元素,时间复杂度为O(1)。

(3) pop()
pop():令队首元素出队,时间复杂度为O(1)。

#include <stdio.h>
#include <queue>
using namespace std;
int main()
{queue<int> q;for(int i = 1; i <= 5; i++){q.push(i); // push(i)用以将i压入队列,因此依次入队1 2 3 4 5}for(int i = 1; i <= 3; i++){q.pop(); //出队首元素三次(即依次出队1 2 3)}printf("%d\n", q.front());return 0;
}
4

(4)empty()
empty():检测queue是否为空,返回true则空,返回false则非空,时间复杂度为O(1)。

#include <stdio.h>
#include <queue>
using namespace std;
int main()
{queue<int> q;if(q.empty() == true) // 一开始队列内没有元素,所以为空{printf("Empty\n");}else{printf("Not Empty\n");}q.push(1);if(q.empty() == true) //在入队“1”后,队列非空{printf("Empty\n");}else{printf("Not Empty\n");}return 0;
}
Empty
Not Empty

(5)size()
size():返回queue内元素的个数,时间复杂度为O(1)。

#include <stdio.h>
#include <queue>
using namespace std;
int main()
{queue<int> q;for(int i = 1; i <= 5; i++){q.push(i); // push(i)用以将i压入队列}printf("%d\n", q.size()); // 队列中有5个元素return 0;
}
5

queue的常见用途

当需要实现广度优先搜索时,可以不用自己手动实现一个队列,而是用queue作为代替,以提高程序的准确性。
另外有一点注意,使用front()和pop()函数前,必须用empty()判断队列是否为空,否则可能因为队空而出现错误。

queue的常见用法相关推荐

  1. queue的常见用法详解

    目录 queue的定义 queue容器内元素的访问 queue常用函数 queue的常见用途 queue 翻译为队列,在STL中主要则是实现了一个先进先出的容器. queue的定义 要使用queue, ...

  2. STL剖析(二):容器底层数据结构及常见用法

    一.概述 本文主要聚焦于STL容器,STL完整的容器分类体系如下所示,下文将逐一对各个容器底层的数据结构以及常见用法进行介绍. 测试环境:Ubuntu 22.04 g++ 11.3.0 二.顺序容器 ...

  3. 万字精华总结RocketMQ的常见用法(案例+图)

    概述 上篇博文,我们介绍了什么是RocketMQ,以及如何安装单机版的RocketMQ.在安装的过程了,我们主要安装了两个服务,NameServer和Broker.在发送和接收消息时,又接触了两个概念 ...

  4. mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...

  5. python六:常见数据类型以及常见用法

    bool 布尔值 # 在bool中 0,()(空元祖),[](空列表),{}(空字典),None,""(空字符串) 都是False int 整形 float 浮点型 str 字符串 ...

  6. vue-router 的常见用法

    vue-router 的常见用法 1. 路由重定向 路由重定向指的是:用户在访问地址 A 的时候,强制用户跳转到地址 C ,从而展示特定的组件页面. 通过路由规则的 redirect 属性,指定一个新 ...

  7. 空的宏定义作用及常见用法

    空的宏定义作用及常见用法 我们学习宏定义的第一个概念是,宏定义作为替换作用. 例如: #define SIZE 32 // 接下来代码使用SIZE就相当于32 宏定义是编译器在编译时,将程序中所有SI ...

  8. Arrays常见用法

    Arrays常见用法

  9. sed文本处理常见用法

    sed文本处理常见用法    2011-06-24  TsengYia#126.com http://tsengyia.blog.chinaunix.net/   ################## ...

最新文章

  1. python中selenium中使用ajax_selenium 智能等待ajax完成调用
  2. 文件菜单服务器属性,服务器属性(“数据库设置”页) - SQL Server | Microsoft Docs...
  3. thinkphp5(改变html中的变量、赋值和替换)
  4. 关于activiti中的三类网关
  5. AngularJS 的自定义指令
  6. Android—常用组件练习
  7. Spring面向方面的编程
  8. 在Mac系统中如何使用App Cleaner Uninstaller Pro清理应用卸载残留?
  9. c语言编程模拟银行取钱代码,C语言 用初等函数模拟银行取款
  10. Web前端开发-为网页元素添加阴影效果
  11. B站收藏 6.1w+!GitHub 标星 3.9k+!这门神课拯救了我薄弱的计算机基础
  12. 小提琴1234567位置图解_1秒找到小提琴上的每个调音阶
  13. [ Vue.js ] 报错 ‘scope‘ is defined but never used vue/no-unused-vars
  14. 转载一篇ps更换背景色
  15. index.php.bak 颓废_18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
  16. 『精华』技术大牛养成指南,一篇不鸡汤的成功学实践
  17. 分布式技术与实战第六课 分布式缓存设计
  18. 程序员有话说 | 原来你是这样的程序员:麦霸、大厨、舞林高手……
  19. 我可以在iPad上使用WhatsApp吗?
  20. 遍历Python字典

热门文章

  1. 用java实现页面搜索功能_关于如何利用矩阵实现搜索功能
  2. 2019年7月9日星期二(C语言)
  3. Executor Framework
  4. 修改Visual Studio中“添加新项”时默认添加的命名空间
  5. 【24】淘宝sdk——入门实战之左右悬浮模块
  6. 存储过程中while循环
  7. 2192-Zipper 求最长公共子序列的解题报告
  8. QUdpSocket 4.6 严重丢包
  9. ES6——Class 笔记
  10. 手把手带你一起写迅雷官网