📅  最后修改于: 2023-12-03 15:13:55.004000             🧑  作者: Mango
Deque(双端队列)是一种可在队列两端进行插入和删除操作的特殊数据结构,C++ STL中deque是实现这种数据结构的一种容器。
Deque是一个双向队列,可以从队列的前面和后面进行插入和删除操作,它的元素内存空间是不连续的。在容器中使用deque的语法如下:
#include <deque>
deque<int> myDeque; // 创建一个空的deque
此时,myDeque是一个空的deque对象,可以使用以下方法向其中添加元素:
myDeque.push_front(10); // 在队列前面插入元素10
myDeque.push_back(20); // 在队列后面插入元素20
也可以使用以下方法将元素从deque中删除:
myDeque.pop_front(); // 删除队列前面的元素
myDeque.pop_back(); // 删除队列后面的元素
Deque提供了两个成员函数front()和back(),可以获取队列的第一个和最后一个元素。用法如下:
#include <deque>
deque<int> myDeque;
myDeque.push_front(10);
myDeque.push_back(20);
int front_elem = myDeque.front(); // 获取队列前面的元素
int back_elem = myDeque.back(); // 获取队列后面的元素
以上代码中,front_elem的值为10,back_elem的值为20。
这两个函数非常方便,但是在使用之前需要判断deque是否为空,否则会抛出异常。
为了安全的使用这两个函数,可以先使用**empty()**成员函数检查deque是否为空,代码如下:
if (!myDeque.empty()) {
int front_elem = myDeque.front();
int back_elem = myDeque.back();
}
以上代码中,只有当deque不为空时才会获取队列的第一个和最后一个元素,避免了异常的发生。
Deque是一种双向队列容器,可以高效地进行插入和删除操作。Deque提供了**front()和back()**函数,可以方便地获取队列的第一个和最后一个元素,但是在使用之前需要判断deque是否为空。