【发布时间】:2014-03-03 22:19:34
【问题描述】:
我想知道哪个是一般用途最快的。因此,我们可以使用以下代码来代替 push_back() 数组。我认为数组更快,但我不确定。
int *p;
p = new int[5];
for(int i=0;i<5;i++)
*(p+i)=i;
// realloc
int* temp = new int[6];
std::copy(p, p + 5, temp);
delete [] p;
p = temp;
【问题讨论】:
-
把分析器放在上面。 :)
-
只需使用 std::vector - 已经实现
-
一般来说,“真正的”C 数组比任何类型的对象访问起来都更快。 (当然,快速访问并不是选择构造的唯一标准。)
-
这正是
std::vector在幕后所做的,只是自动内存管理、异常安全、摊销的重新调整大小成本等。 -
一个数组通常会比一个向量“更快”,但就像之前的 cmets 所说的,
std::vector会为你处理一切......对速度的影响应该可以忽略不计,不值得担心:)