1. 程式人生 > >STLvector中reserve()和resize()區別

STLvector中reserve()和resize()區別

一   STL中resize()函式的作用是改變vector元素個數      resize(n,m)第二個引數可以省略

      n代表改變元素個數為n,m代表初始化為m .

主要有三層含義:1.如果n比vector容器的size小,結果是size減小到n,然後刪除n之後的資料。2.如果n比vector容器的size大比容器的capacity小,結果是增加size,並初始化----如果指定了,初始化為指定值,沒指定初始化為預設值,capacity不變。

3.如果n比vector容器中的capacity大,結果是先增加容量,然後增加size,並初始化。capacity和size均改變。

二   STL中reverse()函式的作用是改變容量

reverse(n)1.如果n的大小比vector的容量大,增容到n。size不變。
2.如果n的大小比vector的容量小。容量沒有變化。size也沒有變。三   總結resize()函式是改變容器中元素個數,並初始化。------配合v1[i]來使用。因為這些位置已經初始化了,因此要用賦值。reserve()  函式只是改變容量。----------配合push_back使用。