STL学习系列五:Queue容器
2016-04-08 22:50
483 查看
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(); //获取队列的头元素,1 int iBack = queIntA.back(); //获取队列的尾元素 ,9 queIntA.front() = 11; //11 queIntA.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(); //获取队列的头元素,1 int iBack = queIntA.back(); //获取队列的尾元素 ,9 queIntA.front() = 11; //11 queIntA.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;
}
相关文章推荐
- iOS UIMenuController简介
- 10015---Synchronization Guide
- Error:No suitable device found: no device found for connection "System eth0"
- 225. Implement Stack using Queues
- UIScrollView的常用属性
- MySQL utf8转utf8mb4(java.sql.SQLException: Incorrect string value...)
- C#将字典转换成name=value这种字符串格式
- 【SPL标准库专题(5)】 Datastructures:SplStack & SplQueue
- POJ1679 The Unique MST
- Slurm Quick Start Tutorial
- 【iOS开发】UITableView Cell 自适应高度
- CoreText NSTextView和Attribued String
- C# OpenFileDialog和PictrueBox
- 解决“Dynamic Web Module 3.0 requires Java 1.7 or newer.”错误
- iOS滑动条UISlider的使用方法
- UIButton
- marquee
- ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别(总结)
- UILabel添加删除线
- POJ 2778 DNA sequence