美文网首页
vector、list、deque区别

vector、list、deque区别

作者: pluto_S | 来源:发表于2020-05-24 15:56 被阅读0次

    vector

    连续存储结构,每个元素在内存上是连续的;支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除操作效率低下,可以动态扩充,但是扩充过程效率不高,所以可以通过函数控制扩充机制。

    list

    非连续存储结构,具有双链表结构,每个元素维护一对前向和后向指针,因此支持前向/后向遍历,支持高效的随机插入/删除操作,但随机访问效率低下

    优点:
    (1) 不使用连续内存完成动态操作。
    (2) 在内部方便的进行插入和删除操作
    (3) 可在两端进行push、pop
    缺点:
    (1) 不能进行内部的随机访问,即不支持[ ]操作符和vector.at()
    (2) 相对于verctor占用内存多

    deque

    连续存储结构,即其每个元素在内存上也是连续的,类似于vector,不同之处在于,deque提供了两级数组结构, 第一级完全类似于vector,代表实际容器;另一级维护容器的首位地址。这样,deque除了具有vector的所有功能外,还支持高效的首/尾端插入/删除操作
    deque 双端队列 double-end queue
    deque是在功能上合并了vector和list
    优点:
    (1) 随机访问方便,即支持[ ]操作符和vector.at()
    (2) 在内部方便的进行插入和删除操作
    (3) 可在两端进行push、pop
    缺点:占用内存多

    相关文章

      网友评论

          本文标题:vector、list、deque区别

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