vector 清空操作
阿新 • • 發佈:2019-01-10
一.size和capacity
size:vector容器真實大小,對應resize調整size大小,增加的元素為預設值。 capacity:預分配的記憶體空間,對應reserve調整capacity大小。只是調整capacity大小,記憶體還是野的,如果用“[]”進行訪問,可能出現數組越界。#include<vector> #include<iostream> using namespace std; int main(){ vector<int>vec; for (int i = 0; i<100; i++){ vec.push_back(i); } 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;//發生陣列越界 }
二.clear和swap(清空操作)
//1.清除元素不回收記憶體 vec.clear(); cout << vec.size() << endl;//輸出0 cout << vec.capacity() << endl;//輸出141 //2.清除元素回收記憶體 vector<int>().swap(vec);//或者vec.swap(vector<int>()); cout << vec.size() << endl;//輸出0 cout << vec.capacity() << endl;//輸出0