浅谈C++ STL deque 容器
本篇随笔简单介绍一下(C++STL)中(deque)容器的使用方法及常见使用技巧。
deque容器的概念
(deque)的意义是:双端队列。队列是我们常用而且必须需要掌握的数据结构。(C++STL)中的确有模拟队列的模板:#include<queue>
中的(queue)和(priority\_queue)。队列的性质是先进先出,即从队尾入队,从队首出队。而(deque)的特点则是双端进出,即处于双端队列中的元素既可以从队首进/出队,也可以从队尾进/出队。
即:(deque)是一个支持在两端高效插入、删除元素的线性容器。
(deque)模板存储在(C++STL)的#include<deque>
中。
deque容器的使用方法
因为(deque)容器真的和(queue)容器大体相同,其使用方式也大体一致。下面把(deque)容器的使用方式以列表的方式放在下面:
用法 | 作用 |
---|---|
q.begin(),q.end() |
返回deque的首、尾迭代器 |
q.front(),q.back() |
返回deque的首、尾元素 |
q.push_back() |
从队尾入队一个元素 |
q.push_front() |
从队头入队一个元素 |
q.pop_back() |
从队尾出队一个元素 |
q.pop_front() |
从队头出队一个元素 |
q.clear() |
清空队列 |
除了这些用法之外,(deque)比(queue)更优秀的一个性质是它支持随机访问,即可以像数组下标一样取出其中的一个元素。
即:q[i]
。
deque的一些用途
由于本蒟蒻水平有限,暂时想不出deque应用的一些实例。但有一点是肯定的:(deque)容器可以被应用到(SPFA)算法的(SLF)优化。其具体应用方式可见这篇博客: