Vector的擴充機制

(參見知乎大佬的回答,並加以瞭解釋) 使用k=2增長因子的問題在於,每次擴展的新尺寸必然剛好大於之前分配的總和: 什麼意思?假設初始長度爲c,那麼看下圖: 之前被分配的空間不能利用對緩存並不友好,最好把增長因子設爲1<k<2,例如 Folly 採用 1.5,RapidJSON 也是跟隨採用 1.5,k=1.5時,可以在幾次擴容之後,重用之前的內存。
相關文章
相關標籤/搜索