美文网首页
STL中vector和list的区别

STL中vector和list的区别

作者: 潭潭_180 | 来源:发表于2018-09-25 11:28 被阅读0次

STL中的vector特点是: 其容量在需要时可以自动分配,本质上是数组形式的存储方式。即在索引可以在常数时间内完成。缺点是在插入或者删除一项时,需要线性时间。但是在尾部插入或者删除,是常数时间的。

STL的 list 是双向链表:如果知道位置,在其中进行插入和删除操作时,是常数时间的。索引则需要线性时间(和单链表一样)。

vector 和 list 都支持在常量的时间内在容器的末尾添加或者删除项,vector和list都支持在常量的时间内访问表的前端的项.

vector会一次分配多个元素内存,那么下次增加时,只是改写内存而已,就不会再分配内存了,但是list每次只分配一个元素的内存,每次增加一个元素时,都会执行一次内存分配行为。如果是大量数据追加,建议使用list,因为vector 在有大量元素,并且内存已满,再pushback元素时,需要分配大块内存并把已经有的数据move到新分配的内存中去(vector不能加入不可复制元素)然后再释放原来的内存块,这些操作很耗时。而list的性能而会始终于一的,不会出现vector的性能变化情况,所以对于容器构件,需要用什么类型最好,取决于业务逻辑。

相关文章

  • STL中vector和list的区别

    STL中的vector特点是: 其容量在需要时可以自动分配,本质上是数组形式的存储方式。即在索引可以在常数时间内完...

  • Java多线程--并发数据结构

    一、并发List 1、Vector List类簇中ArrayList和Vector的主要区别就是Vector的大部...

  • 2019-05-05 约瑟夫问题STL vector解法

    利用STL 标准模板库中的vector或者list实现约瑟夫问题

  • STL之list和vector

    list 容器 list 简介 list是C++标准模版库(STL,Standard Template Libra...

  • 问题

    stl用过哪些, vector的内存分配问题,vector和list的应用场景 堆和栈的分别,优缺点,堆的大小是多...

  • STL六大组件

    STL STL六大组件 1.容器(containers):各种数据结构,vector、list、queue、set...

  • C++与STL

    STL: 常用容器操作: 1.vector/list/deque insert/erase/clear front...

  • Java集合知识面试题(3)

    【21】ArrayList和Vector的区别 【22】HashMap和Hashtable的区别 【23】List...

  • c++ map基础知识、按键排序、按值排序

    5月27日 map基础知识 在stl中,除了顺序容器,即vector, list, 和deque,另一类的容器是关...

  • STL容器

    STL容器类型 序列式容器:vector,list(双向链表),deque,stack,queue,heap,pr...

网友评论

      本文标题:STL中vector和list的区别

      本文链接:https://www.haomeiwen.com/subject/afgkoftx.html