何时使用向量而不是数组?

时间:2014-10-11 02:50:45

标签: c++ arrays vector

我真的不明白你什么时候需要使用矢量。有人可以给我一个例子,说明何时应该决定使用向量而不是数组,谢谢。

2 个答案:

答案 0 :(得分:2)

主要优点是动态内存分配。 矢量以有限的大小开始,并且在需要更多空间时将其大小加倍。平均插入复杂度仍为O(1),这是此处的主要收益。它虽然比数组慢一点。

除此之外,使用矢量执行的所有操作都可以使用数组完成。但是,向量更容易使用,因为它们可以具有迭代器和花哨的构造函数和函数。

答案 1 :(得分:1)

阵列是固定大小的。分配数组时,它包含n个元素。如果需要添加第(n + 1)个元素,则必须分配一个新数组,复制所有旧元素,然后添加第(n + 1)个元素。使用矢量,这一切都为您照顾。向量将数组保存为存储,并跟踪存在的元素数量。如果支持向量的数组空间不足,则向量必须分配一个新的更大的数组,复制旧元素,然后添加一个元素。但是这已经为您实现了,每次需要增长的数组时,您都不必重新实现它。

在创建更复杂的数据结构时,抽象也有优势。向量是一个类,而数组则不是。