何时使用矢量而不是数组

when to use a vector instead of an array?

本文关键字:数组 何时使      更新时间:2023-10-16

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

主要优点是动态内存分配。向量从有限的大小开始,当需要更多空间时,其大小会加倍。平均插入复杂度仍然是O(1),这是这里的主要增益。不过,它仍然比数组慢一点。

除此之外,你对向量所做的一切都可以用数组来完成。然而,向量更容易使用,因为它们可以有迭代器、奇特的构造函数和函数。

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

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