queue适配器,又被叫做”队列“,与deque双端队列不同,它禁止随机插入元素并且只能从队尾进队首出,和就像坐地铁排队一样,不允许插队行为且遵守先入先出规则——FIFO(first in first out)。

queue适配器的成员函数也比较简单,除了元素增删位置不同其他与stack适配器没有什么区别。push()、emplace()把元素放进队尾,pop()把队首元素删除,size()查看元素总数,empty()检查队列是否为空,swap()交换两个同类型的队列,访问首尾元素分别通过front()、back()。

下面通过代码简单演示队列基本操作:

#include<iostream>
#include<queue>
using namespace std;
/*队尾插入,队首删除,除首尾元素外禁止操作元素*/ 
void test() 
{
queue<int> q;
for(int i=0;i<5;++i) 
{
q.push(i);
}
/*仅仅只能查看队首元素,遍历需要配合pop()使用*/
cout << "遍历队列:" ;
while(!q.empty()) 
{
cout << q.front() << " ";
q.pop();
}
}
int main() {
    test();
    return 0;
}

代码编译如下:

遍历适配器queue

队列就是这么一个简单的适配器,生动形象地模仿了排队这个行为,在蓝桥杯、ACM等算法竞赛上主要服务于深搜或广搜检查是否存在目标元素,及时进行循环终止操作。

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)