【发布时间】:2013-02-24 00:07:46
【问题描述】:
我知道手动动态内存分配通常是个坏主意,但它有时是否比使用 std::vector 更好的解决方案?
举个粗略的例子,如果我必须存储一个 n 整数数组,其中n 来实现它
int* data = new int[n]; //assuming n is set beforehand
或使用向量:
std::vector<int> data;
使用std::vector 绝对是一个更好的主意,还是在实际情况下手动分配动态内存会是一个更好的主意,以提高效率?
【问题讨论】:
-
您不必
push_back。std::vector<int>(n)几乎等同于您的动态数组版本,除了n整数是值,因此为零,在向量中初始化。 -
@juanchopanza:公平点。我删除了
push_back部分。它不应该成为比较的一部分。
标签: c++ stdvector dynamic-memory-allocation