C++:STL------deque
1.about
双端队列deque是一个支持在两端高效插入或删除元素的连续线性存储空间。
它就像是vector和queue的结合。
与vector相比,deque在头部增删元素仅需要 O(1);
与queue相比,deque像数组一样支持随机访问。
2.声明
#include <deque> //头文件
deque<int> d1; //创建一个empty的int型队列
deque<int> d2(8); //创建一个有8个元素的int型队列,默认初始化值(value)为0
deque<int> d3(8, 50); //创建一个有8个元素的int型队列,默认初始化值(value)都设为50
deque<int> d4(d1.begin(), d1.end()); //通过迭代器创建队列
deque<int> d5(d1); //通过拷贝构造创建队列
3.method
方法 | 描述 | 示例 | 时间复杂度 |
---|---|---|---|
size | 实际长度(包含的元素个数) | int x = d.size(); | O(1) |
empty | d是否为空 | bool y = d.empty(); | O(1) |
[] | 随机访问 | int z = d[0]; | O(1) |
begin | deque的头迭代器 | deque::iterator it1 = d.begin(); | O(1) |
end | deque的尾迭代器 | deque::iterator it2 = d.end(); | O(1) |
front | 队头元素 | int a = d.front(); | O(1) |
back | 队尾元素 | int b = d.back(); | O(1) |
push_back | 从队尾入队 | d.push_back(x); | O(1) |
push_front | 从队头入队 | d.push_front(y); | O(1) |
pop_front | 从队头出队 | d.pop_front(); | O(1) |
pop_back | 从队尾出队 | d.pop_back(); | O(1) |
clear | 清空队列 | d.clear(); | O(n) |