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.capacity(); //j=512
i = vecint.size(); //i=0
第二種辦法使用 erase迴圈刪除,結果同上
vector ::iterator iter=vecint.begin();
for ( ;iter!=vecint.end();)
j= vecint.capacity(); //j=512
i = vecint.size(); //i=0
erase在每次操作時,迭代器指標會整體前移1,就是每次都會「搬」全部資料,所以vector不適合做頻繁刪除的容器
第三種辦法 最簡單的使用swap,清除元素並**記憶體
vector ().swap(vecint); //清除容器並最小化它的容量,
// vecint.swap(vector()) ; 另一種寫法
j= vecint.capacity(); //j=0
i = vecint.size(); //i=0
該語句是由vector (vecint).swap(vecint)的變體而來,一下解釋引自csdn:
std::vector(v).swap(v);的作用相當於:
第一句產生乙個和v內容一模一樣的vector,只不過temp的容量是恰好滿足其大小的
第二句把v和temp交換
然後temp就自動解析掉了
C 中vector的基本操作
建立乙個空的 vector vectorv 新增元素 注意 push back 和pop back只能在尾部新增和刪除,不能操作頭部 v.push back 3.1415926 v.push back string adiabatic 刪除元素 pop back v.pop back 3.14159...
C 中vector的基本操作
在c 中,vector是乙個十分有用的容器,下面對這個容器做一下總結。1 基本操作 1 標頭檔案 include.2 建立vector物件,vectorvec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout vector iterator it for it vec...
C 中vector的常用操作
vector的常用操作 定義和初始化vector v1 空vector vector v2 v1 v2包含v1所有元素的副本 vector v2 v1 同上 vector v3 n,val n個val vector v4 n n個重複地執行了值初始化的物件 vector v5 包含了初始值個數的元素...