我对STL中的矢量有一些疑问以澄清.....
向量中的对象分配在哪里?堆?
矢量有边界检查吗?如果索引超出边界,会发生什么错误?
为什么数组比矢量快?
是否存在矢量不适用但阵列必须的情况?
vector<int>以相同的方式分配内存new int[x].at方法时.std::out_of_range如果边界检查失败,则抛出异常.在operator[]不执行边界检查.vector如果您希望容器具有动态大小,则使用a; 如果已知固定大小足够,则使用简单数组.一定要检查其他容器,比如deque和list,以确保选择最合适的容器.否则,如果您需要处理非C++ API,您显然需要访问常规数组.(编辑)@BillyONeal说你应该&vector[0]用来获取底层数组的地址,但要小心使用它,因为如果向量的容量发生变化它可以改变.| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |