class DynamicArray {
int *data;
int size;
public:
DynamicArray(int n) : size(n) {
data = new int[n]; // 動態配置
}
~DynamicArray() {
delete[] data; // 必須用 delete[]
}
// 複製建構子、賦值運算子需深拷貝(Rule of Three)
};
#include
class DynamicArray {
std::vector data;
public:
DynamicArray(int n) : data(n) {} // 自動管理記憶體
// 無需手寫解構子、複製、移動
};
| 特性 | new/delete | std::vector |
|---|---|---|
| 記憶體管理 | 手動,易洩漏 | 自動 RAII |
| 擴容 | 需自行實作 | 內建 push_back、reserve |
| 效能 | 可精確控制 | 極少額外開銷 |
現代 C++ 首選 std::vector,僅在嵌入式、效能極致敏感或教學示範時使用原始指標。