一.關於STL的使用的個人學習和總結(vector篇)
阿新 • • 發佈:2021-01-20
向量 vector 是一種物件實體, 能夠容納許多其他型別相同的元素, 因此又被稱為容器。 與string相同, vector 同屬於STL(Standard Template Library, 標準模板庫)中的一種自定義的資料型別, 可以廣義上認為是陣列的增強版。
它在儲存的能力上比陣列強,可以用來儲存基本的型別,如int,double等,還可以儲存指標和結構體;
基本的宣告
vector<int> a;//聲明瞭一個int 型別的a vector變數,
還有其他的宣告方式
vector<int> a{1,2,3,4}; //基本的a的賦值 vector<int> b(10,1);//聲明瞭一個b變數,長度為10且全為1; vector<int> b1(b) ; //把b中的值全賦值到b1中 // cout<<b1[1]; vector<int> b2(a.begin(),a.begin()+3);//把a中第1個到第3個元素賦值給b2 // cout<<b2[2];
元素的訪問與輸入
vector<int> a(8,0); //宣告一個大小為8,元素全為0的陣列 cin>>a[1]; cin>>a[0]; cin>>a[2]; for(int i=0;i<a.size();i++){ cout<<a[i]<<endl; } return 0;
就像C裡使用的陣列方式一樣
vector的基本操作及方法
vector<int> a(8,0); //宣告一個大小為8,元素全為0的陣列 a.size();//vector中沒有使用length來求長度,不同於string if(a.empty()){ //程式碼 } a.clear(); a.insert(a.begin(),2);//把2放在首元素之前a.insert(a.begin(),3,2); //把2插入到首元素的第一個到第三個元素的位置上 b.insert(b.begin(), a.begin(), a.end()) ; //將a.begin(), a.end()之間的全部元素插入到b.begin()前 a.erase(a.begin())//將起始位置的元素刪除 a.erase(a.begin(),a.begin()+5) //從第一個到第五個元素全刪除 b.swap(a) ; //a向量與b向量進行交換