zoukankan      html  css  js  c++  java
  • 11-28-----vertor和list使用场景

    1.vector拥有一段连续的内存空间,因此支持随机访问,如果需要高效的随机访问,而不子啊胡插入和删除的效率,使用vector,

    2.list拥有一段不连续的内存空间,如果需要高效的插入和删除,而不关心随机访问,则应使用list

    Vector:顺序表

    优点:和数组类似开辟一段连续的空间,并且支持随机访问,所以它的查找效率高其时间复杂度O(1)。
    缺点:由于开辟一段连续的空间,所以插入删除会需要对数据进行移动比较麻烦,时间复杂度O(n),另外当空间不足时还需要进行扩容。

    List:链表

    优点:底层实现是循环双链表,当对大量数据进行插入删除时,其时间复杂度O(1)
    缺点:底层没有连续的空间,只能通过指针来访问,所以查找数据需要遍历其时间复杂度O(n),没有提供[]操作符的重载。

    应用场景

    vector拥有一段连续的内存空间,因此支持随机访问,如果需要高效的随即访问,而不在乎插入和删除的效率,使用vector。

    list拥有一段不连续的内存空间,如果需要高效的插入和删除,而不关心随机访问,则应使用list。
    ————————————————
    版权声明:本文为CSDN博主「海马HiMark」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yu876876/article/details/81698269

  • 相关阅读:
    车厢重组
    军事机密
    士兵站队
    归并排序
    输油管道
    冒泡排序
    快排
    烦人的幻灯片(确实烦人啊)
    奖金(类拓扑排序)
    能量项链
  • 原文地址:https://www.cnblogs.com/wym591273/p/11949305.html
Copyright © 2011-2022 走看看