【发布时间】:2020-04-10 18:18:53
【问题描述】:
我问这个问题是为了学习;通常我会使用向量或链表来解决这个问题。
如果动态数组的大小在整个主代码中发生变化,使用这种方法更有效或更合乎逻辑:创建一个比前一个大一半大小的新动态数组并将以前的元素复制到其中,或使用 realloc使动态数组更大?如果其中之一更有效或更合乎逻辑,为什么?
【问题讨论】:
-
or using realloc-- 如果数组是非 POD 类型,realloc 将不起作用,例如std::string。 -
出于某种原因,对象是否需要位于连续内存中?如果没有,为什么不直接消除这种限制,一切都会变得轻松。
-
内存需要时间来分配,所以如果你知道数组元素的最大大小,那么一定要提前分配或reserve。如果您不这样做,那么您确实需要分析您的应用程序以了解最佳方法。我们无法真正为您解答。
标签: c++ arrays dynamic-memory-allocation