浅谈C++ STL deque 容器

浅谈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\)优化。其具体应用方式可见这篇博客:

关于SPFA算法的优化方式

posted @ 2019-11-08 16:14  Seaway-Fu  阅读(517)  评论(0编辑  收藏  举报