1. 程式人生 > >STL中的vector如何處理才可以避免記憶體碎片

STL中的vector如何處理才可以避免記憶體碎片

答:
使用vector內的reserve函式。
reserve函式主要是為提升vector的效率而存在的,如果已知vector的大小,可以在初始化時為vector執行reserve操作,分配足夠的記憶體空間,之後資料加入vector就不會造成記憶體再次分配,也可以減少記憶體碎片。另外reserve操作只分配記憶體空間,並不執行元素初始化,因此效率上要比resize要高,假如vector中儲存的是複雜的物件,執行這些元素的初始化將是一筆不小的開銷。