- vector:動態陣列,使用上比array更有彈性。
- 宣告:
- vector<int> v; 宣告一個空的vector,長度不定。
- vector<int> v(5); 宣告一個長度為 5 的vector。
- vector<int> v(5, 0); 宣告一個長度為 5 的vector,且每個元素的初始值為 0。
- vector<int> v2 = v; 宣告一個新的vector v2,並賦予v的內容。
- vector<int> v3[2]; 宣告兩個空的vectors,分別是v3[0]、v3[1]。
- 取值:
- 與陣列相同,透過下標取值,例如v[0]為vector v中index=0對應的元素,v[1]為vector v中index=1對應的元素,以此類推。
- v.front():取出vector v 中的第一個元素。
- v.back():取出vector v 中的最後一個元素。
- 把元素加進vector:
- v.push_back(x):在vector v的尾端增添一個元素x。
- 把元素插入vector:
- v.insert(v.begin() + i, x):在vector v中 index=i 的位置放進x,原本在 index=i 的元素及其後的所有元素,後推一個位置。
- 刪除元素:
- v.pop_back():刪除最後一個元素
- v.erase(v.begin()+i):刪除 index=i 的元素
- v.erase(v.begin(), v.begin()+i):刪除 index=0 到 index=i (不含)的元素
- v.clear():清空整個vector
- 判斷vector的長度:
- 判斷是否為空的vector:
- v.empty() 回傳true
- v.size() 回傳零
#include <iostream>
#include <vector>
using namespace std;
void print_vector(vector<int> v){
for (int i=0; i<v.size(); i++)
cout << v[i] << ' ';
cout << endl;
}
int main() {
vector<int> v;
for (int i=0; i<5; i++){
v.push_back(2 * i);
}
print_vector(v); //0 2 4 6 8
v.insert(v.begin()+1, 9); //0 9 2 4 6 8
print_vector(v);
v.erase(v.begin()+1, v.begin()+3);
print_vector(v); //0 4 6 8
return 0;
}
Post Views (since April 2021) : 3,032