(参见知乎大佬的回答,并加以了解释)

使用k=2增长因子的问题在于,每次扩展的新尺寸必然刚好大于之前分配的总和:

Vector的扩充机制

什么意思?假设初始长度为c,那么看下图:

Vector的扩充机制

之前被分配的空间不能利用对缓存并不友好,最好把增长因子设为1<k<2,例如 Folly 采用 1.5,RapidJSON 也是跟随采用 1.5,k=1.5时,可以在几次扩容之后,重用之前的内存。

相关文章:

  • 2021-08-23
  • 2022-01-24
  • 2022-02-20
  • 2021-09-16
  • 2022-12-23
猜你喜欢
  • 2021-12-25
  • 2021-06-30
  • 2022-12-23
  • 2021-12-23
  • 2022-12-23
相关资源
相似解决方案