使用STL vector的幾種清空容器(刪除)辦法

2021-07-27 23:56:02 字數 1064 閱讀 9548

在vector中新增500個元素:

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().swap(vec);//清空容器

vector

v;string s;

// 使用v和s

vector

().swap(v); // 清除v而且最小化它的容量

string().swap(s); // 清除s而且最小化它的容量

STL vector 的使用方式

向量容器不但能像陣列一樣對元素進行隨機訪問,還能在尾部插入元素,是一種簡單 高效的容器,完全可以代替陣列。同樣 下標從0開始 1.標頭檔案 vector 2.宣告 vector type v 可以事先確定乙個長度 不夠再擴充套件 甚至,先全賦值 例 vector double v 10,2.555 ...

STL vector 的使用演算法

includeusing namespace std include 向量 include 迭代器 include 演算法 include 函式 stl三大元件 容器,演算法,迭代器 void main vectora ar,ar 8 a.push back 1 a.push back 2 copy...

STL vector的簡單使用

vector類似與陣列,但更加安全,且長度是可變的。vector能儲存同種型別的元素。empty函式判斷vector是否為空 clear函式清空vector maxsize函式返回vector最大儲存量 begin函式返回vector的的第乙個元素的迭代器指標 end函式返回vector的最後乙個元...