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();
queInt.push();
queInt.push();
queInt.push();
queInt.push();
queInt.pop();
queInt.pop();//此时queInt存放的元素是5, 7, 9 }
int main()
{
objPlay2();
return ;
}

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

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

4.queue的数据存取

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

5.queue的大小

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

 以上所有代码整理:

#include<iostream>
using namespace std;
#include <queue>
void objPlay2()
{
queue<int> queInt;
queInt.push();
queInt.push();
queInt.push();
queInt.push();
queInt.push();
queInt.pop();
queInt.pop();//此时queInt存放的元素是5, 7, 9 }
void objPlay3()
{
queue<int> queIntA;
queIntA.push();
queIntA.push();
queIntA.push();
queIntA.push();
queIntA.push(); queue<int> queIntB(queIntA); //拷贝构造
queue<int> queIntC;
queIntC = queIntA; //赋值 }
void objPlay4()
{
queue<int> queIntA;
queIntA.push();
queIntA.push();
queIntA.push();
queIntA.push();
queIntA.push(); int iFront = queIntA.front(); //获取队列的头元素,1
int iBack = queIntA.back(); //获取队列的尾元素 ,9 queIntA.front() = ; //
queIntA.back() = ; // }
void objPlay5()
{
queue<int> queIntA;
queIntA.push();
queIntA.push();
queIntA.push();
queIntA.push();
queIntA.push(); if (!queIntA.empty())
{
int iSize = queIntA.size(); //队列中有五个元素
} } int main()
{
objPlay2();
objPlay3();
objPlay4();
objPlay5(); return ;
}

最新文章

  1. C++控制台贪吃蛇代码
  2. 上传文件fileupload
  3. \(\S1 \) Gaussian Measure and Hermite Polynomials
  4. [No000012]编程中浮点数之什么是科学计数法
  5. 网页打印A4纸-----表格在跨页时自动换页打印的实现 (转)
  6. 《隆重介绍 思源黑体:一款Pan-CJK 开源字体》
  7. LNMP服务器虚拟主机管理lnmp
  8. CAShapeLayer 与贝塞尔曲线
  9. SQL判断临时表是否存在
  10. django-url调度器-中级篇
  11. [洛谷1580]yyy loves Easter_Egg I
  12. Iconfinder 如何杜绝盗版,哈希算法检测图像重复
  13. Android开发中StackOverflowError
  14. 共有49款Windows GUI开发框架开源软件 【转】
  15. nginx屏蔽ip配置
  16. appium自动化测试之元素定位
  17. apt install yum失败
  18. Chrome 开发工具之Timeline/Performance
  19. 解题:NOI 2009 诗人小G
  20. msf web_delivery模块攻击

热门文章

  1. C#画图解决闪烁问题
  2. Image.FrameDimensionsList 属性备注
  3. 【转】android UI设计的一些心得与问题解决(无效果图)
  4. Jqgrid入门-别具特色的Pager Bar (四)
  5. Material Design 设计--阴影的重要性
  6. shiro实现APP、web统一登录认证和权限管理
  7. uva 10047 The Monocycle(搜索)
  8. hdu 4604 Deque(最长不下降子序列)
  9. Android 开发问题集合
  10. 【转】【Android】对话框 AlertDialog -- 不错不错