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

  1. vector在push_back以成倍增长可以在均摊后达到O(1)的事件复杂度,相对于增长指定大小的O(n)时间复杂度更好。
  2. 为了防止申请内存的浪费,现在使用较多的有2倍与1.5倍的增长方式,而1.5倍的增长方式可以更好的实现对内存的重复利用。
  3. 知乎上看到一个很好的解释: https://www.zhihu.com/question/36538542/answer/67929747。
posted @ 2019-01-29 09:10  我有点秃页  阅读(2763)  评论(0编辑  收藏  举报