1. 程式人生 > 其它 >C++ vector 相關函式簡介

C++ vector 相關函式簡介

技術標籤:學習札記c++

vector函式簡介

函式:#include <vector>
size()
容器中元素個數
max_size()
最大可以儲存的元素個數
capacity()
實際儲存空間的大小,大於或等於size()
empty()
容器是否為空,size()==0為true
reserve()
重新分配空間的大小
resize()
重新分配容器的元素個數
front()
第一個元素的值
back()
最後一個元素的值
at()
某個位置的元素值,並檢查位置是否越界
begin()
正序第一個元素的位置
end()
正序最後一個元素的下一個位置
rbegin()

反序的第一個元素的位置,也是正序最後一個元素
rend()
反序的最後一個元素下一個位置
push_back()
在末尾追加一個元素,size()增1
assign()
重新分配元素,將會丟棄原有全部元素
pop_back()
刪除最後一個元素,size()減1
clear()
清空所有元素
insert()
在指定位置插入一個或多個元素
erase()
刪除指定位置的一個或連續幾個元素
shrink_to_fit()
削減多佔用的空間,使得capacity()=size()
swap()
交換兩個容器的全部元素

演算法:#include <algorithm>
find()
查詢指定的兩個位置間是否存在某個值,與string::find()相似

reverse()
把全部元素倒序存放 (長得有點像reverse|reserve)
copy()
複製兩個位置間的元素到另一個容器的指定位置並覆蓋它的元素
remove()
移除等於某個值的所有元素,但並未刪除移掉元素的空間
【比如】{1,0,2,3,0,0,4,0,5}去掉0後剩下的{1,2,3,4,5}去覆蓋掉容器最前面的元素{1,2,3,4,5,0,4,0,5},原有順序並沒改變,沒被覆蓋掉的元素仍保留在原位置處。
sort()
預設升序排序,降序要重寫排序比較函式
【其實】不用寫函式那麼麻煩,先排序再倒序不就是降序排列了,見如下測試程式碼:

//測試程式碼:
vector <int> vect(10);
for_each(vect.begin(),vect.end(),[](int &i)->void{i=rand()%10;});
for (auto v:vect) cout<<v<<" "; cout<<endl;
sort(vect.begin(),vect.end());
for (auto v:vect) cout<<v<<" "; cout<<endl;
reverse(vect.begin(),vect.end());
for (auto v:vect) cout<<v<<" "; cout<<endl;	


//執行結果:
-----------------------------------
1 7 4 0 9 4 8 8 2 4
0 1 2 4 4 4 7 8 8 9
9 8 8 7 4 4 4 2 1 0

-----------------------------------

函式的具體用法請參閱:

1.《C++ vector宣告和賦值的相關函式

2.《C++ vector 刪除和排序的相關函式