最佳答案
C + + 有 std: : Vector,Java 有 ArrayList,许多其他语言都有自己的动态分配数组形式。当一个动态数组用完空间时,它会被重新分配到一个更大的区域,旧的值会被复制到新的数组中。对这种数组的性能至关重要的一个问题是数组的大小增长有多快。如果你总是只增长到足以适应当前的推动力,那么你每次都会重新分配资源。所以把数组大小加倍或者乘以1.5倍是有意义的。
有没有理想的生长因子?2倍?1.5倍?我所说的理想是指在数学上合理的、最佳的平衡性能和浪费的内存。我认识到,从理论上讲,考虑到您的应用程序可能具有任何潜在的推力分布,这在某种程度上取决于应用程序。但是我很好奇,是否有一个值“通常”是最好的,或者在某些严格的约束下被认为是最好的。
我听说有一篇关于这个的论文,但我一直找不到。