双端队列
Coddy C++ 标准模板库 课程的第 6 课,共 23 课。
Deque 是 C++ 中的一种序列容器,也称为双端队列。稍后,在课程的“容器适配器”一章中,你会学习普通队列。现在,你只需知道,普通队列从后端 插入元素,并从前端移除元素。而双端队列可以从前端和后端插入和移除元素。

要实现双端队列这种数据结构,我们需要在 .cpp 文件顶部引入库:#import <deque>(我们也可以通过引入 bits/stdc++.h 头文件来使用双端队列)
接下来,使用以下语法创建一个 deque:
deque<data_type> deque_name;首先,使用 deque 关键字。然后,指定要存储在双端队列中的变量类型,最后指定双端队列变量的名称。
deque<int> numbers;和向量数据结构一样,我们也可以在声明双端队列时对其进行初始化:
deque<int> numbers = {1, 2, 3, 4, 5};
cout << numbers[0];输出:
1因此,我们可以使用 push_back() 方法在双端队列后端插入元素,并使用 push_front() 方法在前端插入元素。
deque<int> numbers = {2, 3};
numbers.push_front(1);
numbers.push_back(4);
for(int i = 0; i < numbers.size(); i++)
cout << numbers[i] << " ";输出:
1 2 3 4双端队列方法
| 方法 | 功能 |
| push_back() | 在后端插入一个新元素 |
| push_front() | 在前端插入一个新元素 |
| pop_back() | 移除后端的元素 |
| pop_front() | 移除前端的元素 |
| size() | 返回元素数量 |
| empty() | 返回双端队列是否为空 |
| clear() | 移除双端队列中的所有元素 |
挑战
简单用户会不断输入正数,直到输入 -1。依次将每个数字插入双端队列:第一个数字放在队首,第二个放在队尾,第三个放在队首,以此类推……然后使用循环遍历双端队列,并输出每个元素,元素之间用一个空格隔开。
Input
5
10
15
20
25
30
-1Output
25 15 5 10 20 30亲手试试
#include <deque>
#include <iostream>
using namespace std;
int main()
{
// Enter your code here
return 0;
}C++ 标准模板库中的所有课
自己练习: C++ 在线编译器