STL -> vector:
vector 類似于 string 類,也是一種動態數組。
在調用時可以在末尾附加或者中間插入新數據。
基本上,vector 是使用 new 創建動態數組的替代品。
事實上,vector 自動使用 new 和 delete 來管理內存。
vector 可以在插入或者添加值時自動調整長度,所以可以將初始長度設置為零,調整長度需要用到 vector 包中的各種方法。
#include <vector>
//...
using namespace std;
vector<int> vi; // vi 是一個vector<int>對象
int n;
cin >> n;
vector<double> vd (n);
// vd 是一個長度為n的vector<double> 對象
STL -> array:
array 類長度固定,位于std中,使用靜態內存分配(棧)。
因此其效率和數組相同,但更為方便和安全。
#include <array>
...
using namespace std;
array<int,6> ai; // ai 是一個長度為5的array<int>對象
array<double, 4> ad = {1.2, 2.1, 3.43, 4.3};
數組、vector、array之間的比較:
vector和array也不會檢查超界錯誤。
a2[-2] = 5 // 錯誤,但是允許
可以使用類方法來檢查。
a2.at(1) = 2.3 // 等同于a2[1] = 2.3
另外還有 begin() 和 end() 函數可以確定邊界。