STL 容器:queue
2026/8/8 14:43:58 网站建设 项目流程

目录

  • queue 的概念
  • queue 的构造方式
  • queue 的常用接口
    • empty()
    • size()
    • front()
    • back()
    • push()
    • pop()
    • swap()

queue 的技术文档:文档链接

queue 的概念

queue 也是一种 STL 容器,它实现自数据结构的队列
和数据结构的队列一样,queue 也是从一端入,在另一端出的遵循先进先出的原则

要使用 queue,就需要包含头文件 queue,由于容器都是定义在 std 命名空间下的,所以还需要指定命名空间 std

#include<queue>

queue 的构造方式


在构造 queue 时,要使用以下的语法:

queue<数据类型,内部所用的数据结构>对象名();

其中,数据类型和对象名是必须要给定的,内部所用的数据结构与括号这两个信息不是必须的,如果不指定内部所用的数据结构,那么 queue 的内部用的结构就是 deque(一种顺序表和链表的结合),指定了内部所用的数据结构则使用指定的。

构造 queue 有两个方式:

(1)构造空的 queue

对象名后不加括号,就是在构造空的 queue

intmain(){queue<int>q1;return0;}

(2)通过已有的容器对象来构造 queue

用这种方式构造 queue 时,需要将 queue 内部所用的数据结构更改为用来初始化 queue 的容器对象的结构

intmain(){vector<int>v1(2,1);//用来初始化队列的vectorqueue<int,vector<int>>q1;//构造队列所用的数据结构需要更改为vectorreturn0;}

queue 的常用接口

queue 的常用接口主要有:

接口名称功能
empty判断队列是否为空
size返回队列中的元素个数
front取队头元素
back取队尾元素
push将一个元素入队
pop将一个元素出队
swap交换两个队列的值

empty()

empty 的作用为检查队列是否为空,是空返回 true,非空返回 false

intmain(){queue<int>q1;queue<int>q2;q2.push(1);q2.push(2);if(q1.empty())cout<<"q1 is empty"<<endl;elsecout<<"q1 is not empty"<<endl;if(q2.empty())cout<<"q2 is empty"<<endl;elsecout<<"q2 is not empty"<<endl;return0;}

结果:

q1 is empty q2 isnotempty

size()

size 的作用为返回队列中元素的个数

intmain(){queue<int>q1;q1.push(1);q1.push(2);cout<<q1.size()<<endl;return0;}

结果:

2

front()

front 的作用为取出队头元素

intmain(){queue<int>q1;q1.push(1);q1.push(2);cout<<q1.front()<<endl;return0;}

结果:

1

back()

back 的作用为取出队尾元素

intmain(){queue<int>q1;q1.push(1);q1.push(2);cout<<q1.back()<<endl;return0;}

结果:

2

push()

push 的作用为将指定元素入队,入队后,size加1

intmain(){queue<int>q1;q1.push(1);q1.push(2);return0;}

pop()

pop 的作用为将队头元素出队,出队后,size减1

intmain(){queue<int>q1;q1.push(1);q1.push(2);q1.pop();return0;}

swap()

swap 的作用为将两个队列中的值进行互换

intmain(){queue<int>q1;q1.push(1);q1.push(2);queue<int>q2;q2.push(3);q2.push(4);q1.swap(q2);return0;}

交换前:

交换后:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询