一、

    Vector的实际内存拓展方式是成倍增长的
    比如,开始放第一个元素,开辟内存空间是一,开始放第二个元素内存不够,新开辟1×2 = 2个(单位)内存空间,并将原来的1个数据迁移过去,放第三个还不够,新开辟 2×2 = 4 个内存空间,把原来的两个数据再迁移过去,(迁移的时间也是一笔不小的投入),以此类推,直到bad_alloc。

    List和vector不同的是,它是一个接一个地去增长内存,不会去成倍增加,内存利用效率极高。
    另外,List不像Vector、Deque这种连续内存空间上的容器,它内部是不连续的内存空间,依靠指针依次相连,不能用iterator迭代器随意跳跃指向某元素。

    Forward-list与list大致相同,除了单向之外,它只有push_front这一个选项,原因是它的结构是下面这种,向前增长机制image.png

    deque作为一种可以在两头插入元素的容器,由此衍生出了stack(栈),queue(队列)这两种容器适配器(adapter)。
    它们的衍生关系如下两图所示:
    image.pngimage.png