STL学习系列五:Queue容器
2015-12-07 11:33
363 查看
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;
}
相关文章推荐
- UIDatePicker常用属性 NSDateFormatter 时间戳转为本地时间
- iOS中UILabel属性
- iOS7.0中UILabel高度调整注意事项(转)
- Android Audio Focus的应用(requestAudioFocus)
- iOS 9 Afnetworking 3.0 Request failed: unacceptable content-type: text/plain
- 太原UI设计师郭文军讲解UI设计中质感的画法及应用
- UIView的基本应用
- NGUI 配合 TexturePackerGUI 打包图集
- UE4 Tutorial - Custom Mesh Component
- 学习 ui-router - 路由控制
- iOS系列UI篇——UIControl
- Guilty — to the kitchen!
- UIPageViewController实现的左右滑动界面
- 根据字符长度动态确定UIlabel宽高
- Code Forces 601 B. Lipshitz Sequence(单调栈)
- iOS设置UIImage的渲染模式:UIImage.renderingMode
- iOS开发-UI控件:日历选取控件
- Android开发-UI控件:Fragment 真正的完全解析(上)
- Android开发-UI控件:实现登陆页面并跳转和简单的注册页面
- UITabBarController