學習日記--用Vector(向量)實現動態數組
阿新 • • 發佈:2019-03-19
gin wid 註意 urn [] 經典 pri double border
Vector的使用方法:
能在添加元素時增加長度的數組稱為動態數組或可變長數組。相對地,必須事先指定長度,只能容納一定數量元素的數組稱為靜態數組。下面分享一下如何借助STL(標準模板庫)中的Vector實現動態數組及管理數據。
仔細觀察程序輸出的值,有助於很快理解Vector的便利之處。
經典示例程序:
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 5 void print (vector<double> V) 6 { 7 for( int i = 0 ; i < V.size() ; i++) 8 { 9 cout<<V[i]<<" "; 10 } 11 cout<<endl; 12 } 13 14 int main ( int argc , const char * argv[]) 15 { 16 vector<double> V; 17 18 V.push_back(0.1); 19 V.push_back(0.2); 20 V.push_back(0.3);21 V[2] = 0.4; 22 print(V);//0.1 0.2 0.4 23 24 V.insert(V.begin() + 2,0.8); 25 print(V);//0.1 0.2 0.8 0.4 26 27 V.erase(V.begin() + 1); 28 print(V);//0.1 0.8 0.4 29 30 V.push_back(0.9); 31 print(V);//0.1 0.8 0.4 0.9 32 33 return 0; 34 }
Output
0.1 0.20.4 0.1 0.2 0.8 0.4 0.1 0.8 0.4 0.1 0.8 0.4 0.9
vector(double) V;是聲明一個double類型變量名為V的向量,STL提供的vector是一個模板,所以需要我們在< >中指定類型,從而定義管理該類型數據的容器。在訪問vector中的元素時,可以與數組一樣使用“[ ]”運算符。
下面介紹Vector的成員函數示例:
函數名 | 功能 | 復雜度 |
size() | 返回向量的元素數 | O(1) |
push_back(x) | 在向量末尾添加元素x | O(1) |
pop_back() | 刪除向量的最後一個元素 | O(1) |
begin() | 返回指向向量開頭的叠代器 | O(1) |
end() | 返回指向向量末尾(最後一個元素的後一個位置)的叠代器 | O(1) |
insert(p,x) | 在向量的位置p處插入元素x | O(n) |
erase(p) | 刪除向量中位置P的元素 | O(n) |
clear() | 刪除向量中所有元素 | O(n) |
在使用vector的成員函數時,一定要註意相應的復雜度!!比如insert(),erase()與clear(),它們3個的復雜度是O(n)。
學習日記--用Vector(向量)實現動態數組