建立 vector
#include <vector>: 引入 vectorvector<dataType> vec: 宣告vector<dataType> vec={data1, data2}: 宣告 + 初始化vector<dataType> v(x);: 建立一個大小為 x 的 vector,每個元素會被初始化為0/" "/false(根據 dataType)vector<dataType> v(x, y);: 建立一個大小為 x 的 vector,每個元素會被初始化為 y
使用範例 :
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> vec1; // vec1 = {}
vector<int> vec2={1, 2, 3}; // vec2 = {1, 2, 3}
vector<int> vec3(3); // vec3 = {0, 0, 0}
vector<int> vec4(4, 5); // vec3 = {5, 5, 5, 5}
return 0;
}
新增及刪除元素
vec.push_back(val): 將元素(val) 插入 vector 的尾端vec.insert(position, val): 將元素插入指定的位子(position)vec.pop_back(): 刪除 vector 最尾端的元素vec.erase(position): 刪除 vector 中位在 position 的元素vec.erase(first, last): 刪除 vector 中在 first~last 的元素vec.clear(): 清空所有元素
使用範例 :
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3); // vec = {1, 2, 3}
vec.insert(vec.begin(), 4); // vec = {4, 1, 2, 3}
vec.pop_back(); // vec = {4, 1, 2}
vec.erase(vec.begin()); // vec = {1, 2}
vec.clear(); // vec = {}
}
存取元素
vec.front(): 取得 vector 的第一個元素vec.back(): 取得 vector 的最後一個元素vec[i]: 取得 vector 的第 i 個元素vec.at(i): 取得 vector 的第 i 個元素
使用範例 :
#include <iostream>
#include <vector>
using namespace std;
int main(){
int x;
vectorr<int> vec={1,2,3,4,5};
x=vec.front(); // x = 1
x=vec.back(); // x = 5
x=vec[2]; // x = 3
x=vec.at(3); // x = 4
return 0;
}
修改元素
vec[i]=val: vector 的第 i 個元素改成 valvec.at(i)=val: vector 的第 i 個元素改成 val
使用範例 :
#include <iostream>
#include <vector>
using namespace std;
int main(){
int x;
vectorr<int> vec={1,2,3,4,5};
vec[0] = 100; // vec = {100, 2, 3, 4, 5}
vec.at(3) = 0; // vec = {100, 2, 3, 0, 5}
return 0;
}
走訪 vector
下列方法都可以用~
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> vec={1,2,3,4,5};
// method 1
for (int i=0; i<vec.size(); i++) {
cout<<vec[i]<<" ";
}
cout<<endl;
// method 2
for(auto i:vec){
cout<<i<<" ";
}
cout<<endl;
// method 3
for (auto iter=vec.begin(); iter!=vec.end(); iter++) {
cout<<*iter<<" "; // 需要 dereference
}
cout<<endl;
return 0;
}
其他
vec.size(): vector 的大小vec.empty(): 判斷 vector 是不是空的vec.begin(): 指向 vector 第一個元素的 iteratorvec.end(): 指向 vector 最尾端元素的下一個位置的 iterator
使用範例 :
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int> vec={1,2,3,4,5};
vec.size(); // 5
vec.empty(); // false
*vec.begin(); // 1
return 0;
}