• c++容器


    1、vector:实质是动态堆数组,连续存储的内存区域,支持快速的随机访问。

    2、list:实质是双向循环链表,支持在中间进行快速的插入删除,但是不能支持快速的随机访问。非连续的内存区域。

    3、deque:也支持快速的随机访问,但随机访问的速度不及vector,连续存储的内存区域,但是分为两级,一级类似于vector,存储实际数据,另一层作为一个Map

    deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存deque中的数据。因此deque在随机访问和遍历数据会比vector慢。具体的deque实现可以参考《STL源码剖析》,当然此书中使用的SGI STL与VS2008所使用的PJ STL的实现方法还是有区别的。下面给出了deque的结构图:

    4、map:实质是一颗红黑树。

  • 相关阅读:
    微信端支付
    flex布局
    最近的一些计划
    工作中遇到的一些小问题
    获取url参数
    localStorage中使用json
    倒计时函数(单个和多条)
    刚进入页面强制刷新
    [模板][倍增] ST算法 RMQ 区间中最大得值
    [思维]奇数码问题
  • 原文地址:https://www.cnblogs.com/jiese/p/3295444.html
Copyright © 2020-2023  润新知