为什么有人喜欢向量而不是数组?

The*_* K. 2 c++ arrays vector

可能重复:
现实世界中的C++ STL向量与数组

首先,我对C++和C的高级知识有一点低于平均水平的知识.
很多时候,我想问一些与代码相关的内容并包含或引用一些代码,并且array每个人都会立即锁定这个方面,并建议我应该使用a vector,即使它不需要做任何与我的问题有关的事情.

问题是,这是我学会了如何使用C++,显然这是我从第一次学习纯C继承的方式,我很习惯了,虽然我有信心用载体还,我只是喜欢arraysvectors.

我的问题是为什么有人会使用一个vector而不是一个array,即使他已经习惯了数组,他还能通过这样做获得什么?
如果arrays不是首选,vectors为什么不是每个人都只使用矢量的一切?

Lig*_*ica 5

向量具有可在运行时提供的维度,例如用户提供的值或从文件内容派生的值.

相反,数组的大小必须硬编码到程序中.这是固定的.

为什么不是每个人都只使用矢量来做所有事情

当您不需要时,使用向量而不是数组会产生运行时性能成本.就个人而言,我从未编写过这是瓶颈的代码,因此很少使用原始数组; 不过,这样的情况存在.


当创建的内存块(在某些意义上的"阵列")是个例外动态new[]; 这是封装的确切语言功能std::vector.