deque(双端队列)是C++标准模板库(STL)中的一种容器,它允许我们在其前端和后端进行快速的插入和删除操作。其名称“deque”来源于“double-ended queue”的缩写,表示其两端都可以进行队列操作。
deque的构造函数
deque的构造函数用于创建一个新的双端队列对象。它有多种重载形式,以满足不同的初始化需求。以下是一些常见的构造函数:
默认构造函数:创建一个空的双端队列。
指定大小的构造函数:创建一个具有指定数量元素的双端队列,所有元素都被初始化为给定的值。
std::deque<int> myDeque(10, 5); // 创建一个包含10个元素的双端队列,所有元素初始化为5
范围构造函数:创建一个双端队列,并用给定范围内的元素初始化它。
int arr[] = {1, 2, 3, 4, 5};
std::deque<int> myDeque(arr, arr + 5); // 创建一个包含arr数组中元素的双端队列
拷贝构造函数:创建一个新的双端队列,作为现有双端队列的副本。
移动构造函数:通过移动现有双端队列的内容来创建一个新的双端队列,原双端队列变为未定义状态。
std::deque<int> myDeque1(10, 5); // 创建一个包含10个5的双端队列
std::deque<int> myDeque2 = std::move(myDeque1); // 通过移动myDeque1的内容来创建myDeque2,myDeque1现在处于未定义状态
初始化列表构造函数:使用初始化列表来创建和初始化双端队列。
std::deque<int> myDeque = {1, 2, 3, 4, 5}; // 创建一个包含5个元素的双端队列,元素分别为1到5
示例代码
下面是一个简单的示例,演示了如何使用deque的不同构造函数: