最近接觸到c++的vector,感覺很方便,之前參加了一些競賽,涉及到一些算法的時候,一直覺得代碼寫的很冗余,很長的一段。C++的vector就可以解決這個問題,使用起來很方便。
之前我們寫數組都是int array[]的形式,但是去遍歷數組的時候總是要知道數組的大小才行,另外刪除和插入數據時操作十分的繁瑣,雖然可以也可以去用鏈表存,但是我們還是喜歡簡單的方法,鏈表實在是比較麻煩….
現在有了容器以后,只需要vector<int > v;
如果需要添加元素的話 只需要v.push_back();即可
如果需要刪除數組的元素的話,使用v.erase(v.begin()+1); 刪除的是第一個元素(但其實是第二個元素了,它也是從0開始計的(0,1,2……) )我下面說的第幾個,都是指從0開始的。
另外,它可以刪除一段區間的所有元素。v.erase(v.begin()+1,v.begin()+5); 刪除的是下標1,2,3,4的元素。並沒有刪除下標為5的元素,這一點需要注意!刪除的是到v.begin()+5前一個元素為止的。
插入元素的話 使用v.insert(v.begin(),1);在第零個元素前面插1
v.insert(v.begin()+2,2);在第二個元素前插2
v.insert(v.end(),1000);注意 這個是在最后一個元素后面插的1000,而並不是最后一個的前面。大家可以自己自己試試。
另外在這里講一下遍歷。vector<int>::iterator it; it
for(it=v.begin();it!=v.end();it++)
cout<<*it<<' ';
cout<<endl;
這樣就可以遍歷整個數組了,我c++的語法也有點忘記了,但是這里的it無非就是一個指針,暫且不去細究這個語法。
v.size();元素的個數
v.clear();清除所有元素
需要頭文件#include<vector>
1 #include<iostream>
2 #include<vector>
3 using namespace std; 4 int main() 5 { 6 vector<int>::iterator it; 7 vector<int > v; 8 int i; 9 for(i=0;i<10;i++)//添加10個元素 1,2,3....
10 { 11 v.push_back(i); 12 } 13
14 for(it=v.begin();it!=v.end();it++)//遍歷一下整個數組
15 cout<<*it<<" "; 16 cout<<endl; 17
18 v.erase(v.begin()+1);//刪除的是第一個元素(下標從0開始) 19 // 也就是1 ,所以現在是0,2,4...9
20 v.insert(v.begin()+1,1);//把刪除的再加進去
21 v.erase(v.begin()+1,v.begin()+4);//刪除的第1,2,3 的元素共三個元素 22 //也就是剩下的是 0,4,5,6,7,8,9
23 for(it=v.begin();it!=v.end();it++)//遍歷一下整個數組
24 cout<<*it<<" "; 25 cout<<endl; 26
27 cout<<v.size()<<endl;//看一下數組的大小
28
29 v.clear(); 30
31 cout<<v.size()<<endl; 32 return 0;
33
34
35
36
37
38 }
