一、定义

queue是一种容器转换器模板,调用#include< queue>即可使用队列类。

二、queue初始化

queue<Type, Container> (<数据类型,容器类型>)

初始化时必须要有数据类型,容器可省略,省略时则默认为deque 类型

初始化示例

queue<int>q1;
queue<double>q2;
queue<char>q3;
//默认为用deque容器实现的queue;
queue<char, list<char>>q1;
//用list容器实现的queue queue<int, deque<int>>q2;//用deque容器实现的queue

注意:不能用vector容器初始化queue

因为queue转换器要求容器支持front()、back()、push_back()及 pop_front(),说明queue的数据从容器后端入栈而从前端出栈。所以可以使用deque(double-ended queue,双端队列)和list对queue初始化,而vector因其缺少pop_front(),不能用于queue。

二、queue常用函数

1.常用函数

  1. push() 在队尾插入一个元素
  2. pop() 删除队列第一个元素
  3. size() 返回队列中元素个数
  4. empty() 如果队列空则返回true
  5. front() 返回队列中的第一个元素
  6. back() 返回队列中最后一个元素

2.函数运用示例

1:push()在队尾插入一个元素

queue <string> q;
q.push("first");
q.push("second");
cout<<q.front()<<endl;

输出 first

2:pop() 将队列中最靠前位置的元素删除,没有返回值

queue <string> q;
q.push("first");
q.push("second");
q.pop();
cout<<q.front()<<endl;

输出 second 因为 first 已经被pop()函数删掉了

3:size() 返回队列中元素个数

queue <string> q;
q.push("first");
q.push("second");
cout<<q.size()<<endl;

输出2,因为队列中有两个元素

4:empty() 如果队列空则返回true

queue <string> q;
cout<<q.empty()<<endl;
q.push("first");
q.push("second");
cout<<q.empty()<<endl;

分别输出1和0
最开始队列为空,返回值为1(ture);
插入两个元素后,队列不为空,返回值为0(false);

5:front() 返回队列中的第一个元素

queue <string> q;
q.push("first");
q.push("second");
cout<<q.front()<<endl;
q.pop();
cout<<q.front()<<endl;

第一行输出first;
第二行输出second,因为pop()已经将first删除了

6:back() 返回队列中最后一个元素

queue <string> q;
q.push("first");
q.push("second");
cout<<q.back()<<endl;

输出最后一个元素second

转自:C++队列queue用法详解_KEPROM的博客-CSDN博客_c++ queue

C++队列queue用法详解相关推荐

  1. python queue 查询是否在队列中_python队列Queue的详解

    Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 clas ...

  2. python队列只能一个个读取吗_python队列Queue的详解

    Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 clas ...

  3. Java队列Queue使用详解(*)

    Queue是java中实现队列的接口,它总共只有6个方法,我们一般只用其中3个就可以了.Queue的实现类有LinkedList和PriorityQueue.最常用的实现类是LinkedList. Q ...

  4. 【Java】Java队列Queue使用详解

    Deque是一个双端队列接口(double ended queue),继承自Queue接口,Deque的实现类是LinkedList.ArrayDeque.LinkedBlockingDeque,其中 ...

  5. python队列Queue的详解

    Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信. 1. Queue的使用 可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个 ...

  6. 优先队列priority_queue 用法详解

    优先队列priority_queue 用法详解 优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序 每次的push和pop操作,队列都会动态的调整,以达 ...

  7. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  8. 教程-Delphi中Spcomm使用属性及用法详解

    Delphi中Spcomm使用属性及用法详解 Delphi是一种具有 功能强大.简便易用和代码执行速度快等优点的可视化快速应用开发工具,它在构架企业信息系统方面发挥着越来越重要的作用,许多程序员愿意选 ...

  9. STL中map和string, vector 用法详解

    1. map 用法详解 std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成 ...

最新文章

  1. OpenBSD 6.0 将移除 Linux 子系统以改进安全
  2. mysql两张表一起计数_mysql-同一张表上的多个联接,其中一个查询计数
  3. PHP is_null,empty以及isset,unset的区别
  4. 4安全框_压花玻璃与安全玻璃有哪些特点?玻璃隔断的介绍
  5. 路由器 android 打印机,谷歌关闭云打印服务,安卓和Chrome办公用户要慌了
  6. Telnet 服务器软件的安装
  7. 【转】PCDATA和CDATA的区别究竟是什么呢?
  8. 计算机论文撰写周记,电子与计算机毕业设计周记
  9. 3.新建页面以及添加路由 2021-07-11
  10. WPS表格乘的结果和计算机的不一样,同版本wps两个电脑显示不一样怎么办
  11. linux sar 分析,Linux性能测试分析命令_sar
  12. __stack_chk_fail问题及解决方案
  13. SuiteScritp 2.0开发实例 自定义工单+领料单 单据流转 打印
  14. repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。
  15. mysql5.1.40.jrp_1.原生态JDBC编程中的问题总结
  16. riak文件服务器,riak简介(一)
  17. rails-redis hgetall与hGetall
  18. OpenCV双目鱼眼相机标定
  19. 微分方程一维抛物热传导方程向前向后欧拉C-N格式二阶BDF格式MATLAB源码 显式欧拉,隐式欧拉,梯形公式,改进欧拉
  20. FreeLaunchBar-Windows10系统任务栏快捷方式管理者

热门文章

  1. 小红书引流脚本,小红书引流加粉
  2. 为HTML网页添加喜庆气氛的诸多方法
  3. 17.2. ps - report a snapshot of the current processes
  4. DataGridView绑定数据库
  5. X-wrt路由器配置校园网ipv6穿透
  6. RESTful风格的接口
  7. spark 安装部署与介绍
  8. 在当前主机添加两块网卡,将两块网卡绑定实现网卡冗余操作。
  9. 基于Web的直播平台架构设计
  10. 白领的一天:请客吃饭实用口语