我有一个简单(可行)的问题.在C中创建自己的动态数组实现时,最好是在数组接近其当前最大能力时向前分配内存(假设为10个元素),或者每次元素数更改时重新分配内存?
我的意思是:为了表现,优雅或任何想到的东西.
通常的选择是将当前大小乘以大于1的固定数字(通常为1.5,因为2),这样可以分摊O(n)总分配和复制成本.
请注意,无法保证您可以增加阵列的大小,因此您可能必须将所有现有元素复制到新位置(realloc()为您自动执行此操作,但您仍需支付费用).
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |