size resize與capacity reserve之間的區別

weixin_34402090發表於2012-12-07

大小(size,跟resize相對應)與容量(capacity,與reserve相對應)之間有很大的區別:

size表明容器中目前實際有多少個元素,resize會在容器的尾部新增或刪除一些元素,使容器達到指定的大小。這兩個函式對list、vector、deque都適用,對其它容器不適用。

capacity表明最少新增多少個元素才會導致容器重新分配記憶體,reserve會使容器的內部緩衝區擴充至一個更大的容量,以確保至少滿足reserve的引數所指出的空間大小。這兩個函式僅對vector適用。

v.reserve(2);執行之後,可以確保v.capacity() >= 2;(注意不是v.capacity() == 2;)。

相關文章