vector 清空操作

2021-08-04 09:32:38 字數 801 閱讀 2576

size:vector容器真實大小,對應resize調整size大小,增加的元素為預設值。

capacity:預分配的記憶體空間,對應reserve調整capacity大小。只是調整capacity大小,記憶體還是野的,如果用「」進行訪問,可能出現陣列越界。

#include#includeusing namespace std;

int main()

cout << vec.size() << endl;//輸出100

cout << vec.capacity() << endl;//輸出141

vec.reserve(200);

cout << vec.capacity() << endl;//輸出200

vec.resize(150);

cout << vec.size() << endl;//輸出150

//cout << vec[199] << endl;//發生陣列越界

}

//1.清除元素不**記憶體

vec.clear();

cout << vec.size() << endl;//輸出0

cout << vec.capacity() << endl;//輸出141

//2.清除元素**記憶體

vector().swap(vec);//或者vec.swap(vector());

cout << vec.size() << endl;//輸出0

cout << vec.capacity() << endl;//輸出0

vector清空與容量處理

vector的clear操作可以將vector的資料清空,但是vector的容量不會變化,即分配給vector的記憶體不會收回。如果想收回這些記憶體,可以採取下面的方法 vectornum num.push back 1 num.push back 2 vector swap num 或者 num....

堆積木 vector 清空記憶體

蒜頭君有 n 塊積木,編號分別為 1 到 n。一開始,蒜頭把第 i 塊積木放在位置 i。蒜頭君進行 m 次操作,每次操作,蒜頭把位置 b 上的積木整體移動到位置 a 上面。比如 1 位置的積木是 1,2 位置的積木是 2,那麼把位置 2 的積木移動到位置 1 後,位置 1 上的積木從下到上依次為 1...

vector清空 ,防止記憶體洩露

注 使用過第三種方法,可行!vector vecint for int i 0 i 500 i int j vecint.capacity j 512 i vecint.size i 500 第一種辦法使用 clear 清空元素,但不 空間 vecint.clear j vecint.capacit...