📅  最后修改于: 2023-12-03 14:59:48.420000             🧑  作者: Mango
在 C++ 中,我们可以使用标准库中的 deque 类来实现双端队列。双端队列是一种可以在队列的两端进行插入和删除操作的数据结构。
deque 具有以下特点:
deque 支持以下基本操作:
下面是一个使用 deque 的示例代码:
#include <iostream>
#include <deque>
using namespace std;
int main()
{
deque<int> d;
// 在队尾插入元素
d.push_back(1);
d.push_back(2);
d.push_back(3);
// 在队头插入元素
d.push_front(0);
// 打印队列中的元素
for (auto it = d.begin(); it != d.end(); it++)
{
cout << *it << " ";
}
cout << endl;
// 弹出队尾元素
d.pop_back();
// 弹出队头元素
d.pop_front();
// 打印队列中的元素
for (auto it = d.begin(); it != d.end(); it++)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
输出结果为:
0 1 2 3
1 2
在上面的代码中,我们首先创建了一个 deque 对象 d。然后使用 push_back 和 push_front 操作在队列的尾部和头部插入了一些元素。
接着,我们使用循环打印出队列中的元素。
然后使用 pop_back 和 pop_front 操作分别删除队尾和队头元素。
最后再次打印队列中的元素,可以看到队尾和队头的元素被成功删除。
双端队列是一种在队列头部和尾部都可以进行插入和删除操作的数据结构,在 C++ 中可以使用标准库中的 deque 类来实现。deque 中支持多种操作,包括在队头和队尾插入和删除操作、队列大小和是否为空的判断、以及随机访问元素等操作。双端队列可以方便地实现栈和队列的操作,同时也可以支持随机访问元素的操作。