首先是vector,字面翻译为向量,其用法类似于数组,但其功能比数组更强大。简单的说,vector是数组的类表示,可以动态的改变vector对象的长度,随着元素的增删而增大或缩小,提供对元素的随机访问。和数组一样,在vector尾部添加和删除元素的时间是固定的。但是,在vector中间或头部增删元素的时间和复杂度与对象中元素的个数成正比。
deque表示双端队列,deque对象支持下标随机访问,在deque头部或尾部添加或删除元素的时间都是固定的。所以,如果有很多操作都是针对序列的头部位置,建议使用deque。但是,如果在deque中间进行元素的增删处理,操作的时间和复杂度与对象中元素的个数成正比。
list类模板表示双向链表,除了首尾元素外,list容器对象中的每个元素都和前后元素相连接,list不支持下标随机访问,只能通过迭代器双向遍历。在list的任何位置增删元素的时间都是固定的,以空间换时间。
网友评论