deque是一个双端队列,即可以在头部插入、删除还可以在尾部插入、删除。
实现:
底层的实现为分块的数组加一个map管理每个块的首地址,类似下图的结构:
特点:
在首尾两端操作比较快,在中间位置操作速度慢。支持随机访问,支持动态扩展内存空间(不需要移动元素),但是效率比vector低。
参考资料:
https://www.jianshu.com/p/51570127ea0d
https://blog.youkuaiyun.com/qq_37653144/article/details/80053578
https://www.cnblogs.com/xiangtingshen/p/11625958.html
https://blog.youkuaiyun.com/fengbingchun/article/details/72757856
https://www.cnblogs.com/xuelei/p/7536340.html