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 ;
}

STL学习系列五:Queue容器的更多相关文章

  1. 标准模板库(STL)学习探究之vector容器

    标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...

  2. scrapy爬虫学习系列五:图片的抓取和下载

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  3. STL学习系列之一——标准模板库STL介绍

    库是一系列程序组件的集合,他们可以在不同的程序中重复使用.C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出.数学计算等功能. 1. STL介绍 标准模板库STL是当今每 ...

  4. 侯捷STL学习(九)--关联式容器(Rb_tree,set,map)

    layout: post title: 侯捷STL学习(九) date: 2017-07-21 tag: 侯捷STL --- 第十九节 容器rb_tree Red-Black tree是自平衡二叉搜索 ...

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

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

  6. STL学习系列三:Deque容器

    1.Deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的. deque在接口上和vector非常 ...

  7. STL学习系列二:Vector容器

    1.Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). vector尾部添 ...

  8. STL学习系列四:Stack容器

    Stack简介 stack是堆栈容器,是一种“先进后出”的容器. stack是简单地装饰deque容器而成为另外的一种容器. #include <stack> 1.stack对象的默认构造 ...

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

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

随机推荐

  1. BootStrap图标

  2. UVa 11997 (优先队列 多路归并) K Smallest Sums

    考虑一个简单的问题,两个长度为n的有序数组A和B,从每个数组中各选出一个数相加,共n2中情况,求最小的n个数. 将这n2个数拆成n个有序表: A1+B1≤A1+B2≤... A2+B1≤A2+B2≤. ...

  3. UVa 12063 (DP) Zeros and Ones

    题意: 找出长度为n.0和1个数相等.没有前导0且为k的倍数的二进制数的个数. 分析: 这道题要用动态规划来做. 设dp(zeros, ones, mod)为有zeros个0,ones个1,除以k的余 ...

  4. jfinal框架教程-学习笔记(一)

    JFinal  是基于 Java  语言的极速  WEB  + ORM  开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java 语言所有优势 ...

  5. UVA 11426 GCD-Extreme(II) ★ (欧拉函数)

    题意 求Σ{1<=i<N} Σ{i<j<=N} GCD(i, j)     (N<=4000000) 分析 原始思路 暴力求明显是不行的,我们把式子简化形式一下发现它可以 ...

  6. fmri降噪,利用spatial+temporal信息

    1.基于小波+高斯模型 <SPATIOTEMPORAL DENOISING AND CLUSTERING OF FMRI DATA>

  7. 深入浅出 iOS 之生命周期

    转:http://blog.csdn.net/kesalin/article/details/6691766 iOS应用程序的生命周期相比 Android 应用程序的生命周期来说,没那么简明易懂,但是 ...

  8. Github 终于开始认真考虑开源项目许可证了

    如今GitHub已成为全球最流行的开源项目托管平台,但也有质疑声音——“Github中的大多数项目并不算是开源项目”.这是因为Github中大多数项目并没有明确声明所使用的许可证. 根据版权法规定,如 ...

  9. 自定义TreeList单元格 z

    DevExpress Treelist自定义单元格,加注释和行序号.以上一节的列表为例,实现以下效果:预算大于110万的单元格突出显示,加上行序号以及注释,如下图: 添加行序号要用到CustomDra ...

  10. codeforces 691F Couple Cover 暴力

    分析:开一个300w的数组,统计,然后nlogn统计每个值在在序对第一个出现有多少种情况 时间复杂度:O(nlogn) n在3e6数量级 #include<cstdio> #include ...