C++ vector(STL) 用法與範例
vector
是 C++ 標準模板庫(STL)中的一種動態陣列(dynamic array),能夠根據需要自動調整大小。與傳統陣列不同的是,vector 在建立時不需要預先指定大小,可以在執行期間動態新增或移除元素。
初始化
以 {value1, value2,…} 初始化
- Time Complexity: O(n)
#include <vector>
using namespace std;
vector<int> v = {1, 2, 3};
以特定元素個數初始化
- Time Complexity: O(n)
#include <vector>
using namespace std;
vector<int> v(5); // 初始化一個有5個元素的 vector,元素未賦初值
以特定元素個數帶有特定初始值初始化
- Time Complexity: O(n)
#include <vector>
using namespace std;
vector<int> v(5, 10); // 初始化一個有5個元素的 vector,每個元素的初始值為10
從其他 vector 初始化
- Time Complexity: O(n)
#include <vector>
using namespace std;
vector<int> original = {1, 2, 3, 4, 5};
vector<int> v(original.begin(), original.end()); // 透過拷貝 original vector 的方式初始化
初始化 size 為 (m, n) 的 2D vector
- Time Complexity: O(m * n)
#include <vector>
using namespace std;
vector<vector<int>> v(3, vector<int>(4, 0)); // 初始化一個3行4列的二維 vector,每個元素的初始值為0
取值
取得第 i個元素: v[i]
- Time Complexity: O(1)
vector<int> v = {1, 2, 3};
cout << v[0] << "\n"; // 1
使用 .at() 方法安全取值: v.at(i)
- Time Complexity: O(1)
- 檢查索引超出範圍會拋出 out_of_range 異常
vector<int> v = {1, 2, 3};
cout << v.at(2); // 3