zoukankan      html  css  js  c++  java
  • 温习C/C++笔记(3)——Vector和List的区别

    1.Vector容器

    vector 是一种顺序容器,它的元素被存储在一段连续空间中。vector是作为一种动态数组实现的,
    和普通的数组一样,它的元素被存储在一段连续的空间中,因此不仅可以通过迭代器访问元素,
    而且可以通过某个元素的指针加上一个偏移量进行访问。
    vector的大小是自己维护的,用户完全不需要关心其大小,它会根据需要对数组的大小进行扩充。
    Vector的有点主要有:
    1.可以通过小标访问元素(O(1))。
    2.使用迭代器以任何顺序访问元素,正序或者逆序(O(n))。
    3.可以在尾部添加或者删除元素(O(1))
    当vector的空间不够时,会自动扩充大小。通常是重新分配一段2倍于原来空间大小的连续内存,
    并将原来的数据拷贝到新的位置,释放原来的空间。
    和其他标准容器(deque ,list)相比,vector通常是随即存取元素最快的容器,然而,对于插入和删除
    操作的效率就不如deque和list.

    2.List容器

    list也是一种顺序容器,不过它并不像vector一样被存储在一段连续的内存空间中,而是组织成为
    一个双向链表
    list的所占内存空间是不连续的,这也决定我们不能通过下表存取元素。
    List的有点有:
    1.高效地插入和删除操作(O(1)).
    2.高效地移动元素或者元素块,可以在一个容器内进行也可以在不同的容器之间进行。(O(1))
    3.从前向后或者从后向前地迭代存取元素。(O(n))

    相比之下,list在执行元素的插入删除以及移动等操作时效率很高,如果在程序中大部分是用到插入
    和删除以及移动操作,那么list将是一个不错的选择。
    list主要的不足之处就是缺少通过位置直接村群元素的方式。

  • 相关阅读:
    Matlab smooth函数原理
    Pandas中的高级索引loc、iloc、ix精简概括
    QT常见错误:"multiple definition of xxx"
    Github术语解释
    数据反转 LSB
    LSB最低有效位和MSB最高有效位
    Modbus通信CRC16校验程序
    CRC16常见几个标准的算法及C语言实现
    DB9 公头母头引脚定义及连接
    hdu 2577 How to Type(dp)
  • 原文地址:https://www.cnblogs.com/dancingrain/p/3405247.html
Copyright © 2011-2022 走看看