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