欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

深入理解STL中的queue(队列)机制:探索队列在STL中的工作原理与应用

最编程 2024-07-25 21:52:37
...

队列,简称对,是一种操作受限的线性表。限制为:只允许在队首删除(出队),队尾插入(入队),其特点是先进先出。在STL中,queue作为一种适配器,其底层容器一般为deque(双端队列)和list(双向链表),其中deque为默认底层容器。

头文件
#include<queue>
创建queue对象:
模板:queue<数据类型,容器类型> q;

数据类型:可以是int、double等基本类型,也可以是自定义的结构体。
容器类型:一般为deque(双端列队)或者list(双向链表),可省略,省略时以deque为默认容器。
q:队列名。

声明代码如下:
queue<int> q;  //使用默认的双端队列为底层容器创建一个空的queue队列对象q,数据元素为int类型。
queue<int> q[20];  //规定队列元素数量
queue<int,list<int>> q1;
queue<int,list<int>> q2(q1);
//复制构造函数(queue(const queue&)),用一个queue对象创建新的queue对象。 
//利用queue对象q1,创建一个以双向链表为底层容器的queue对象q2
基本操作:

在文章结尾处有代码示例

q.push(x);      //入队,将元素 x 从队尾插入(尾插法)
q.pop();        //出队,删除对首元素,并返回其值
q.size();       //返回队中元素个数
q.front();      //返回对首元素
q.back();       //返回队尾元素
q.empty();      //判断是否为空(空返回 1,非空返回 0)

推荐阅读