📅  最后修改于: 2023-12-03 14:39:52.892000             🧑  作者: Mango
C++ STL中的双端队列是一种常见的数据结构,支持在队列头和尾部进行插入和删除操作。它是deque(“双(double)”、“端(ended)”、“队列(queue)”三个单词的缩写)类型的模版类,定义在queue头文件中。
双端队列的定义如下:
#include <deque>
std::deque<T> dq;
其中T为数据类型,可以是任意数据类型。
双端队列支持的操作有:
下面是双端队列的一些操作示例:
#include <iostream>
#include <deque>
int main() {
std::deque<int> dq;
dq.push_front(1);
dq.push_back(2);
dq.push_front(3);
for (int i = 0; i < dq.size(); i++) {
std::cout << dq[i] << " ";
}
std::cout << std::endl;
dq.pop_front();
dq.pop_back();
for (int i = 0; i < dq.size(); i++) {
std::cout << dq[i] << " ";
}
std::cout << std::endl;
std::cout << dq.front() << " " << dq.back() << std::endl;
std::cout << std::boolalpha << dq.empty() << std::endl;
std::cout << dq.size() << std::endl;
return 0;
}
输出结果为:
3 1 2
1
1 1
false
1
双端队列是C++ STL中的一个常用数据结构,可以在队头和队尾进行插入和删除操作。它的操作与普通的队列类似,但使用起来更加灵活。在实际应用中,双端队列通常可以作为一种辅助数据结构,简化算法实现过程。