可能重复:
现实世界中的C++ STL向量与数组
首先,我对C++和C的高级知识有一点低于平均水平的知识.
很多时候,我想问一些与代码相关的内容并包含或引用一些代码,并且array每个人都会立即锁定这个方面,并建议我应该使用a vector,即使它不需要做任何与我的问题有关的事情.
问题是,这是我学会了如何使用C++,显然这是我从第一次学习纯C继承的方式,我很习惯了,虽然我有信心用载体还,我只是喜欢arrays了vectors.
我的问题是为什么有人会使用一个vector而不是一个array,即使他已经习惯了数组,他还能通过这样做获得什么?
如果arrays不是首选,vectors为什么不是每个人都只使用矢量的一切?
向量具有可在运行时提供的维度,例如用户提供的值或从文件内容派生的值.
相反,数组的大小必须硬编码到程序中.这是固定的.†
为什么不是每个人都只使用矢量来做所有事情
当您不需要时,使用向量而不是数组会产生运行时性能成本.就个人而言,我从未编写过这是瓶颈的代码,因此很少使用原始数组; 不过,这样的情况也存在.
†当创建的内存块(在某些意义上的"阵列")是个例外动态用new[]; 这是封装的确切语言功能std::vector.
| 归档时间: |
|
| 查看次数: |
4242 次 |
| 最近记录: |