# STL Container - Vector
---
## 可修改長度的陣列
###### (某個程度上是啦...)
----
#### 範例程式碼 1
```cpp=
#include <iostream>
#include <vector> // 需引用此函數庫才能用
using namespace std;
int main(){
vector <int> vec;
// 宣告方式1: vector <資料型態> 名稱;
// 宣告方式2: vector <資料型態> 名稱(長度); <- 預設值皆為0
for(int k = 0; k < 5; k++){
int tmp;
cin >> tmp;
vec.push_back(tmp);
// 以 名稱.push_back(資料) 以新增元素至尾端
}
// 以輸入 0, 4, 2, 1, 5 為例
// vec:|0|4|2|1|5|
vec.front() -= vec.back();
// 名稱.front() 可存取首端元素
// 名稱.back() 可存取尾端元素
// vec:|-5|4|2|1|5|
for(int k = 0; k < 5; k++){
vec[k] += 2;
// 以 [] 即可像陣列一樣存取元素,且索引值運作方式相同
}
// vec:|-3|6|4|3|7|
vec.pop_back();
// 名稱.pop_back() 可刪除尾端元素
// vec:|-3|6|4|3|
cout << vec.size() << '\n';
// 輸出 4
// 名稱.size() 回傳 vector 的長度
vec.erase(vec.begin() + 2);
// 以 名稱.erase(名稱.begin() + 索引值n) 刪除索引值為n的元素
vec.clear();
// 以 名稱.clear() 的方式清空 vector
return 0;
}
```
----
### 優點
1. 維護容易
2. 可修改長度
----
### 缺點
1. 存取時間稍慢
2. 占用較多記憶體
{"metaMigratedAt":"2023-06-15T00:14:58.288Z","metaMigratedFrom":"Content","title":"STL Container - Vector","breaks":true,"contributors":"[{\"id\":\"e5cad38d-b128-4a77-9e0d-d53dea367946\",\"add\":1054,\"del\":3}]"}