码迷,mamicode.com
首页 > 其他好文 > 详细

STL之Deque

时间:2017-04-22 17:43:59      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:ges   前端   释放   alt   组合   play   接口   效率   reserve   

vector是单向开口的连续线性空间,deque则是以中双向开口的连续线性空间。所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作。从技术的角度而言,vector当然也可以在头尾两端进行操作,但是其头部操作效率奇差、令人无法接受。

deque和vector的最大差异:

  1. deque允许于常数时间内对头端进行元素的插入或移除操作

  2. deque没有所谓容量(capacity)观念,因为它是动态地以分段连续空间组合而成,随时可以增加一段新的空间并链接起来。换句话说,像vector那样“因旧空间不足而重新配置一块更大空间,然后复制元素,再释放旧空间”这样的事情在deque中是不会发生的。也因此,deque没有必要提供所谓的空间预留(reserved)功能。

技术分享?

技术分享?
deque是由一段一段的定量连续空间构成。一旦有必要在deque的前端或尾端增加新空间,便配置一段定量的连续空间,串接在整个deque的头端或尾端。 deque的最大任务,便是在这些分段的定量连续空间上,维护其整体连续的假象,并提供随机存取的接口。避开了“重新配置、复制、释放”的轮回,代价则是复杂的迭代器架构。

技术分享?


vector和deque的区别
技术分享?


构造函数
技术分享?


与vector不同的操作:
技术分享?

deque的操作函数
技术分享?
技术分享?


实例
技术分享?

STL之Deque

标签:ges   前端   释放   alt   组合   play   接口   效率   reserve   

原文地址:http://www.cnblogs.com/halox/p/STL-zhiDeque.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!