STL之deque

deque介绍

1、deque是动态大小的序列式容器,可以向两端进行扩容或压缩
2、特定的库可以以不同的方式实现deque,但通常都是一种动态数组。不论在何种情况下,它都允许通过随机访问迭代器直接访问单个元素
3、deque提供了一些与vector相似的功能,但deque在头部和尾部进行数据插入和删除操作更加高效。与vector不同的是,deque不能保证所有元素都存储在连续的空间中,在deque中通过指针加偏移量的方式访问元素可能导致非法的操作

就我而言,其实,相比其他容器而言,deque比较“鸡肋”(个人观点),若要说遍历元素,用vector足以完成,若要说插入删除,list也够用,而且相比来说,deque性能在这两方面性能较差
STL之deque

deque的接口

STL之deque

deque的应用场景

deque在序列式容器中比较鸡肋,因为如果只是简单的存储元素,使用vector即可,如果对元素任意位置进行插入或者删除操作比较多,使用list即可,所以一般很少去使用deque,它最大的应用,就是作为标准库中stack和queue的底层结构
详见库函数stack的模拟实现库函数queue的模拟实现


THE END