首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C++ 類別中實現動態大小陣列:使用 new/delete 或 std::vector

     編輯:程式設計疑難解答

方案一:原始指標 + new/delete

class DynamicArray {
    int *data;
    int size;
public:
    DynamicArray(int n) : size(n) {
        data = new int[n]; // 動態配置
    }
    ~DynamicArray() {
        delete[] data; // 必須用 delete[]
    }
    // 複製建構子、賦值運算子需深拷貝(Rule of Three)
};

方案二:std::vector(推薦)

#include 
class DynamicArray {
    std::vector data;
public:
    DynamicArray(int n) : data(n) {} // 自動管理記憶體
    // 無需手寫解構子、複製、移動
};

比較

特性new/deletestd::vector
記憶體管理手動,易洩漏自動 RAII
擴容需自行實作內建 push_back、reserve
效能可精確控制極少額外開銷

建議

現代 C++ 首選 std::vector,僅在嵌入式、效能極致敏感或教學示範時使用原始指標。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved