一、定义
queue是一个STL(标准模板库),调用#include< queue>即可使用队列类。
二、构造函数
queue<Type, Container> (<数据类型,容器类型>) queueName;
初始化时必须要有数据类型,容器可省略,省略时则默认为deque 类型
//stack是基于deque实现的,相当于deque双端队列,封闭了一端
//queue是基于deque实现的 相当于 deque双端队列 一段禁止入, 一段禁止出
//queue<int> q1 = {1,2,3,4}; //error
//queue<int> q2(10); //error
//1、创建一个空的队列q1
queue<int> q1;
queue<int,list<int>> q1;
//2、用vector容器初始化queue
vector<int> v1={1,2,3,4};
queue<int,vector<int>> q2(v1); //1,2,3,4依次入队列
//3、用deque容器初始化queue
//用queue为queue初始化时deque可省 因为queue是基于deque实现的, 默认以deque方式构造
deque<int> d1 = {1,2,3,4,5};
queue<int,deque<int>> q3(d1);
queue<int> q4(d1);
//4、用list容器初始化queue
list<int> l1 = {1,2,3,4,5};
queue<int,list<int>> q5(l1);
//构造相同才能相互赋值
//q1=q2 error q1是以deque构造的 而q2使用vector构造的 构造不相同不能赋值
q4=q3;
常用函数
push() 在队尾插入一个元素
queue <string> q;
q.push("first");
q.push("second");
cout<<q.front()<<endl;
void pop() 删除队列第一个元素
size() 返回队列中元素个数
empty() 如果队列空则返回true
front() 返回队列中的第一个元素
back() 返回队列中最后一个元素