1.deque简介
queue和stack类似,是STL中的容器适配器,它们并不是容器,而是基于其他容器实现。那么什么叫容器适配器呢,大家可以想一想电源适配器,没错就是下面这个:
它能直接给手机充电吗?当然不能,那是它可以将电源转化为手机能够适应的电压。容器这里就相当于电源,容器适配器对容器的接口进行封装,以达到我们需要的要求。
queue的原理和操作十分简单,即先进先出原则,即只能从队列开头删除元素,只能从队列末尾删除元素,默认是基于deque(双端队列)实现的。使用时需要包含头文件<queue>。
既然它默认是基于deque实现,那么很容易想到,queue能实现的操作deque都能实现,事实也是如此。你可以会有疑问,既然如此,那为什么我们要用queue,而不是直接使用deque?在很多情况下,我们使用queue,就是为了告诉自己或别人,这是一个队列,防止熊孩子们的误操作,把多余的接口删除,防止不必要的错误。就如同const关键字,其存在意义就是为了防止数据被更改。
deque不提供迭代器,不提供随机访问。
2.构造
较为简单,直接看官方文档的例子: