向量:Vector是一种动态数组,可以在插入或删除元素后自动调整大小。Vector 中的元素被放置在连续存储中,以便可以使用迭代器访问和遍历它们。元素被插入到向量的末尾。

例子:

vector v;
v.insert(5);
v.delete();

列表: List是一个双链序列,支持前向和后向遍历。开头、结尾和中间的插入和删除所花费的时间是恒定的。它具有非连续内存并且没有预先分配的内存。
例子:

list  l;
l.insert_begin(5);
l.delete_end();

下面是 向量 和 列表 之间的区别表:

向量 列表
向量有连续的记忆。 列表具有非连续内存。
向量是同步的。 列表不同步。
矢量可能有一个默认大小。 列表没有默认大小。
在向量中,每个元素只需要它自己的空间。 在列表中,每个元素都需要额外的空间用于保存该元素的节点,包括指向列表中下一个和前一个元素的指针。
最后插入需要恒定的时间,但在其他地方插入是昂贵的。 插入很便宜,无论它出现在列表的哪个位置。
向量是线程安全的。 列表不是线程安全的。
向量末尾的删除需要恒定的时间,但其余时间为 O(n)。 无论它出现在列表的哪个位置,删除都很便宜。
可以随机访问元素。 元素的随机访问是不可能的。
如果元素被添加到向量中或从向量中删除,迭代器将变得无效。 如果元素被添加到列表中或从列表中删除,迭代器是有效的。