STL学习系列五:Queue容器
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容器的更多相关文章
- 标准模板库(STL)学习探究之vector容器
标准模板库(STL)学习探究之vector容器 C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被 ...
- scrapy爬虫学习系列五:图片的抓取和下载
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- STL学习系列之一——标准模板库STL介绍
库是一系列程序组件的集合,他们可以在不同的程序中重复使用.C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出.数学计算等功能. 1. STL介绍 标准模板库STL是当今每 ...
- 侯捷STL学习(九)--关联式容器(Rb_tree,set,map)
layout: post title: 侯捷STL学习(九) date: 2017-07-21 tag: 侯捷STL --- 第十九节 容器rb_tree Red-Black tree是自平衡二叉搜索 ...
- STL学习系列七:优先级队列priority_queue容器
1.简介 最大值优先级队列.最小值优先级队列 优先级队列适配器 STL priority_queue 用来开发一些特殊的应用,请对stl的类库,多做扩展性学习 这里给个例子: #include< ...
- STL学习系列三:Deque容器
1.Deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的. deque在接口上和vector非常 ...
- STL学习系列二:Vector容器
1.Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). vector尾部添 ...
- STL学习系列四:Stack容器
Stack简介 stack是堆栈容器,是一种“先进后出”的容器. stack是简单地装饰deque容器而成为另外的一种容器. #include <stack> 1.stack对象的默认构造 ...
- STL学习系列九:Map和multimap容器
1.map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺 ...
随机推荐
- oracle command - creata database dbca & create network netca Demo
#Creata database command: dbca [root@redhat4 ~]# su - oracle[oracle@redhat4 ~]$ dbca # ...
- 对github中项目进行更新
进入本地仓库文件夹,我的仓库名是tufujiegit,然后 进入 git clone 接着将先前记录下来的地址复制到后面,回车 将下载github中该仓库的所有文件及文件夹,包括.git文件夹在内 ...
- UITableViewCell上的按钮点击事件处理
转自: http://www.aichengxu.com/view/42871 UITableViewCell上的按钮点击事件处理,有需要的朋友可以参考下. 今天突然做项目的时候,又遇到处理自定义的 ...
- Java知识点:内部类
内部类class文件命名规则 普通内部类.静态内部类:<Outer>\$<Inner>.class,其中<Outer>为外部类类名,<Inner>为内部 ...
- ZigZag Conversion1
问题描述 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows ...
- mysql优化小技巧
对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...
- 八位彻底改变App Store的iOS开发者
我们与 app 交互的方式已经被一群聪明的开发者所完全改变,他们的共性是对 app 都有各自独到的见解.下面就是其中最顶尖的八位. Loren Brichter Tweeite 不是 iOS 上第一个 ...
- 【转】终于解决了Apache乱码问题
之前开放了一个空间,给网友提供电台节目音频下载.由于多年节目的文件数量甚多,且分类没有特定格式,图省事,没有制作网页提供分类下载,而是直接利用Apache的目录浏览功能,简单直观. 不过,所在的美国服 ...
- 链表的倒数第K个节点
题目:输入一个链表,输出该链表中倒数第K个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个结点. package com.edu; class LinkNode{ //定义一 ...
- bjfu1100 圆环
这题也是2011百度之星的一道题.知道做法后代码极简单. 不过我做完后随便上网搜了一下,发现竟然还有很多不同的做法.别的做法我就不管了,我只把我的做法的原理说清楚.我做题时是按如下顺序逐步找到规律的: ...