# `std::vector` ## **```vector```的概念** ```vector```就是一種類似```array```的資料結構,但長度可變更,加入與刪除資料皆由<font color = "F00000">後方</font>操作,中間的值==可自由取用==與變更,簡單來說就是陣列的升級版 ## **宣告** ```cpp #include <vector> //要引用vector標頭檔 vector<資料型態> 變數名稱; //空vector,還沒新增空間(長度 = 0) vector<資料型態> 變數名稱(大小); //空vector,長度 = 設置大小 vector<資料型態> 變數名稱 = {...資料...}; //含資料vector ``` ## **基礎語法** ```cpp push_back(放入值) //從後插入值 emplace_back(放入值) //自動導向型別建構子(高級push) insert() //插入元素,時間複雜度O(N) pop_back() //刪除末項(最後) erase() //移除某個或某段元素,時間複雜度O(N) clear() //清除全部元素 front() //取得首項之值 back() //取得末項之值 size() //回傳目前長度 empty() //如果為空回傳true 反之回傳false ``` ## **迴圈遍歷** ```cpp vector<int> v; for(auto a : v){ // ... } //or for(int i = 0; i < v.size(); i++){ int a = v[i]; } for(int i = 0; i < v.size(); i++){ int &a = v[i]; } ``` {%hackmd 2HMJrJwgRB-0mjZ5lGdh-g %}