📜  C++ STL 中的 Deque::front() 和 deque::back()(1)

📅  最后修改于: 2023-12-03 15:13:55.004000             🧑  作者: Mango

C++ STL中的Deque::front()和deque::back()

Deque(双端队列)是一种可在队列两端进行插入和删除操作的特殊数据结构,C++ STL中deque是实现这种数据结构的一种容器。

Deque

Deque是一个双向队列,可以从队列的前面和后面进行插入和删除操作,它的元素内存空间是不连续的。在容器中使用deque的语法如下:

#include <deque>

deque<int> myDeque; // 创建一个空的deque

此时,myDeque是一个空的deque对象,可以使用以下方法向其中添加元素:

  • push_front(elem):在队列的前面添加一个元素elem。
  • push_back(elem):在队列的后面添加一个元素elem。
myDeque.push_front(10); // 在队列前面插入元素10
myDeque.push_back(20); // 在队列后面插入元素20

也可以使用以下方法将元素从deque中删除:

  • pop_front():删除队列的第一个元素。
  • pop_back():删除队列的最后一个元素。
myDeque.pop_front(); // 删除队列前面的元素
myDeque.pop_back(); // 删除队列后面的元素
Deque::front()和Deque::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是否为空。