vector list deque三个序列容器的差别
list以双向链表数据结构来实现的,设计的目的为了在一个序列的任何地方快速的插入或者删除元素。list中没有操作符operator[],所以对list进行随即访问速度很慢。其最适合的地方在按顺序从头到尾遍历一个序列的时候,而不是随即的从序列中间选择一个元素。
vector用于快速随机访问其中元素的线性序列,最有效的方法在开始用vector.reserve()分配正确的存储区,vector绝不再重新分配大小了。接着仅仅在后端添加或者删除元素。
deque是优化了的,在序列两端对元素进行添加和删除操作的容器。deque的典型实现是利用多个连续的存储块,因此向deque的两端添加或者删除元素所使用的开销很小。因为从不需要在分配新的存储区时销毁所包含的对象,因此向容器两端添加未知数量的对象,deque比vector有效率。

浙公网安备 33010602011771号