C 中的Vector 的刪除操作

2021-07-30 12:06:02 字數 894 閱讀 3520

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 包含了初始值個數的元素...