Queue简介

  • queue是队列容器,是一种“先进先出”的容器。
  • queue是简单地装饰deque容器而成为另外的一种容器。
  • #include <queue>

1.queue对象的默认构造

queue采用模板类实现,queue对象的默认构造形式:queue<T> queT;  如:
queue<int> queInt;            //一个存放int的queue容器。
queue<float> queFloat;     //一个存放float的queue容器。
...
//尖括号内还可以设置指针类型或自定义类型。

2.queue的push()与pop()方法

  • queue.push(elem);   //往队尾添加元素
  • queue.pop();   //从队头移除第一个元素
#include<iostream>
using namespace std;
#include <queue>
void objPlay2()
{queue<int> queInt;queInt.push(1); queInt.push(3);queInt.push(5); queInt.push(7);queInt.push(9);queInt.pop();queInt.pop();//此时queInt存放的元素是5, 7, 9

}
int main()
{objPlay2();return 0;
}

3.queue对象的拷贝构造与赋值

  • queue(const queue &que);                    //拷贝构造函数
  • queue& operator=(const queue &que); //重载等号操作符
void objPlay3()
{queue<int> queIntA;queIntA.push(1);queIntA.push(3);queIntA.push(5);queIntA.push(7);queIntA.push(9);queue<int> queIntB(queIntA);    //拷贝构造queue<int> queIntC;queIntC = queIntA;                //赋值

}

4.queue的数据存取

  • queue.back();   //返回最后一个元素
  • queue.front();   //返回第一个元素
void objPlay4()
{queue<int> queIntA;queIntA.push(1);queIntA.push(3);queIntA.push(5);queIntA.push(7);queIntA.push(9);int iFront = queIntA.front();        //获取队列的头元素,1int iBack = queIntA.back();        //获取队列的尾元素 ,9
queIntA.front() = 11;            //11queIntA.back() = 19;            //19

}

5.queue的大小

  • queue.empty();   //判断队列是否为空
  • queue.size();          //返回队列的大小
    void objPlay5()
    {queue<int> queIntA;queIntA.push(1);queIntA.push(3);queIntA.push(5);queIntA.push(7);queIntA.push(9);if (!queIntA.empty()){int iSize = queIntA.size();        //队列中有五个元素
        }}

 以上所有代码整理:

#include<iostream>
using namespace std;
#include <queue>
void objPlay2()
{queue<int> queInt;queInt.push(1); queInt.push(3);queInt.push(5); queInt.push(7);queInt.push(9);queInt.pop();queInt.pop();//此时queInt存放的元素是5, 7, 9

}
void objPlay3()
{queue<int> queIntA;queIntA.push(1);queIntA.push(3);queIntA.push(5);queIntA.push(7);queIntA.push(9);queue<int> queIntB(queIntA);    //拷贝构造queue<int> queIntC;queIntC = queIntA;                //赋值

}
void objPlay4()
{queue<int> queIntA;queIntA.push(1);queIntA.push(3);queIntA.push(5);queIntA.push(7);queIntA.push(9);int iFront = queIntA.front();        //获取队列的头元素,1int iBack = queIntA.back();        //获取队列的尾元素 ,9
queIntA.front() = 11;            //11queIntA.back() = 19;            //19

}
void objPlay5()
{queue<int> queIntA;queIntA.push(1);queIntA.push(3);queIntA.push(5);queIntA.push(7);queIntA.push(9);if (!queIntA.empty()){int iSize = queIntA.size();        //队列中有五个元素
    }}int main()
{objPlay2();objPlay3();objPlay4();objPlay5();return 0;
}

转载于:https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_stl_005.html

STL学习系列五:Queue容器相关推荐

  1. idea学习系列五之debug及插件的使用

    idea学习系列五之debug及插件的使用 上一篇,介绍了maven及服务器的使用,这里将介绍idea中debug及插件的使用.在实际开发中debug是最常用的了,而且idea相比于eclipse中的 ...

  2. Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  3. Linux学习系列五:Shell命令脚本的基本语法

    这个系列的Linux教程主要参考刘遄老师的<Linux就该这么学>.用的系统是RHEL8,如果遇见一些命令出现问题,请首先检查自己的系统是否一致,如果不一致,可网上查一下系统间某些命令之间 ...

  4. 标准模板库(STL)学习指南之List容器

    原文地址:http://dozb.bokee.com/1872684.html [文章导读] STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件 [正文] 什么是STL呢?STL就是St ...

  5. Docker系列 五.Docker容器数据卷

    五.Docker容器数据卷 环境&工具: 阿里云轻量级服务器.CentOS 7系统.FinalShell(其他连接客户端也可以) 是什么 docker的理念将运行的环境打包形成容器运行,运行可 ...

  6. STL学习系列七:优先级队列priority_queue容器

    1.简介 最大值优先级队列.最小值优先级队列 优先级队列适配器 STL priority_queue 用来开发一些特殊的应用,请对stl的类库,多做扩展性学习 这里给个例子: #include< ...

  7. STL学习系列九:Map和multimap容器

    1.map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺 ...

  8. STL学习系列一:STL(标准模板库)理论基础

    STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. STL的从广 ...

  9. C++ STL学习笔记(5) Vector容器, array容器,deque容器

    动态增长的数组vector,当它放入的元素满了的时候,会自动的扩充内存,但是,在计算机中内存不能够实现原地扩充,因为在申请了一块固定大小的内存之后,这块内存不管有没有用完,他后面的内存都有可能别的内容 ...

最新文章

  1. 论推荐系统与精细化运营
  2. HTML5 Canvas简简单单实现手机九宫格手势密码解锁
  3. 3.7 非极大值抑制-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  4. 【存储知识学习】第十章- 存储架构演进过程《大话存储》阅读笔记
  5. 小学计算机ppt课教案,小学信息技术公开课教案《让幻灯片变得更加漂亮》教学设计与反思...
  6. 【Redis】15.Redis主从复制
  7. Python二级笔记(1)
  8. 如何在JS判断是否为IE浏览器
  9. 从零开始编写深度学习库(五)PoolingLayer 网络层CPU编写
  10. vnpy通过jqdatasdk初始化实时数据及历史数据下载
  11. java jersey get_java – Jersey GET请求可以返回一个多态实体吗​​?
  12. python通讯录文件读取_python通用读取vcf文件的类(可以直接复制粘贴使用)
  13. 如何有效阅读英文数据手册?
  14. html thead作用,html元素thead标签的使用方法及作用
  15. 三维空间几何变换矩阵
  16. 使用Camtasia来给视频或者图片调色
  17. cacti监控及配置
  18. uniapp 微信小程序分享给微信好友与分享到朋友圈功能
  19. 2022电大国家开放大学网上形考任务-矿井测量非免费(非答案)
  20. 面向对象程序设计实验报告

热门文章

  1. python撩妹代码_Python十行代码让你秒变撩妹达人!想学?
  2. mysql update commit吗_MySQL需要commit么
  3. git没有冲突 但是提示有_git 代码冲突处理
  4. linux系统ftp优化,Linux vsftp 部署优化
  5. 已重置默认应用设置html,win10已重置应用默认设置一直弹怎么办_win10已重置应用默认设置老是弹出解决方法...
  6. vue中集合取第一个_快速学习Vue框架(知识点集合)
  7. java string 精度_Java 中的浮点数取精度方法
  8. oracle下的inventory文件夹,oracle INVENTORY 详解
  9. MySQL学习笔记:SQL基本语法
  10. QT案例:登录对话框——主窗口