此文章是vip文章,如何查看?  

1,点击链接获取密钥 http://nicethemes.cn/product/view29882.html

2,在下方输入文章查看密钥即可立即查看当前vip文章


C++——STL中三种顺序容器的简要区别

  • 时间:
  • 浏览:
  • 来源:互联网

C++ STL 提供了3个顺序容器 :vector, deque, list

Vector动态数组,支持快速访问;list双向链表,支持快速插入和删除。

vector 中的元素是顺序存放的,所以随机访问很快,但是要插入和删除,这个时间复杂度就很高了,vector初始化时有一个capacity,如果元素个数超出capacity,那vector就会重新分配一个新的空间,并把旧值复制到新的空间中,释法原空间,这个也要耗费很多时间,所以如果你知道元素的最大值,最好用reserve()函数初始最大空间,避免重新分配空间造成的时间。

Deque是双端队列,几乎所有的操作都和vector一样,出了可以在头添加和删除,多了个push_front(), pop_front()。只有Vector和Deque有下标操作符,list没有。

list 是双链表,元素在内存中是分散的不连续的,它使用指针left,right,指向前一个元素和后一个元素。所以要删除和添加只要动动指针,所以很快,但是因为是不连续的所以要访问一个元素,你只能遍历序列。

本文链接http://element-ui.cn/news/show-577193.aspx