vector为什么要用加倍扩容而不是每次增加一个固定的扩容容量?

  1. vector在push_back以成倍增长可以在均摊后达到O(1)的事件复杂度,相对于增长指定大小的O(n)时间复杂度更好。
  2. 为了防止申请内存的浪费,现在使用较多的有2倍与1.5倍的增长方式,而1.5倍的增长方式可以更好的实现对内存的重复利用,因为更好。
  3. 知乎上看到一个很好的解释: https://www.zhihu.com/question/36538542/answer/67929747。

猜你喜欢

转载自www.cnblogs.com/freakkkkk/p/10332567.html