Independent Dog

My EDA life record

Vector

STL Vector 使用教學

簡介
建構子
物件函式

1.簡介

Vector 是C++ 中用來產生動態陣列的資料結構,替代C中
動態陣列繁複的malloc(), realloc()以簡化開發程序。

2.建構子

1
2
3
4
5
6
7
8
9
10
include <vector>
int main()
{
vector<int> a1;
vector<int> a2(SIZE);
vector<int> a2.2(SIZE,0);
vector<int> a3[SIZE];
vector<vector<int> > a4(SIZE);
vector<vector<int> > a5(heigh, vector<int> (weigh));
}

a1代表宣告一個空的整數 陣列
a2代表宣告一個有SIZE個 整數空間的陣列
a2.2 代表宣告一個有SIZE個0的整數陣列
a3代表宣告一個可以存SIZE個整數 陣列的 陣列
a4代表宣告一個SIZE X SIZE 大小的二維動態矩陣
a5則是宣告一個 長寬為3X5的整數 陣列

三維以上以此類推

3.物件函式

以下就單純介紹自己常用的一些物件函式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vector<Data_Type> v;
v.push_back(Data_Type X):將資料X放入vector尾端
v.pop_back() :將vector尾端資料移除
v.begin() : 回傳vector起始位置
v.end() : 回傳vector尾端位置
v.front() : 回傳vector起始元素之參照
v.back() : 回傳vector末端元素之參照
v.at(i) :回傳vector第i個元素
v.insert():塞入數值,函式本身有多個overloading有興去請參照reference
v.erase() :移除數值,同上
v.clear() :清除vector元素不過本身其實不會釋放記憶體所以建議用swap
v.swap() :交換vector元素,清空方法如下
vector<int>().swap(v);
這樣就會把vector v清空
v.size() :回傳vector大小
v.empty() :回傳vector是否有元素
v.resize():重新定義vector大小,詳細內容同insert

reference: http://www.cplusplus.com/reference/vector/vector/vector/

⬅️ Go back