deque概述
vector是单向开口的连续线性空间,deque则是一种双向开口的连续线性空间。所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作。vector当然也可以在头尾两端分别做元素的插入删除操作(从技术上说),但是其头部操作效率极差而无法被接受。
deque和vector的最大差异,一是在于deque允许于常数时间内对起头端进元素的插入或移除操作,二在于deque没有所谓容量(capacity)观念,因为它是动态地以分段连续空间组合而成,随时可以增加一段新的空间并连接起来。换言之,如vector那样“因旧空间不足而重新配置一块更大空间,然后复制元素,再释放旧空间”这样的事情在deque是不会发生的。也因此,deque没有必要提供所谓的空间保留(reserve)功能。
虽然deque也提供Ramdon Access Iterator,但它的迭代器并不是普通指针,其复杂度和vector不可以道理计,因此也影响了各个运算层面。因此,除非必要,我们尽可能选择使用vector而非deque。对deque进行的排序操作,为了最高效率,可将deque先完整复制到一个vector身上,将vector排序后,在复制回deque。
deque的中控器
STL序列式容器之deque
最新推荐文章于 2022-07-21 08:00:00 发布