簡體   English   中英

數組必須使用大括號括起來的初始化程序進行初始化

[英]Array must be Initialized with a brace-enclosed initializer

class LUT {
public :
vector <string> Allgate_name;
vector<vector<double> > Cload_vals;
vector<vector<double> > Tau_in_vals;
vector<double [7][7] > All_delays;
vector<double [7][7] > All_slews;
void assignarrays(string);
};

上面的代碼表明,我聲明了一個7x7數組的向量。 但是,當我嘗試將7x7數組推入此向量時,出現以下錯誤。

“數組必須使用大括號括起來的初始化程序進行初始化”“無效的數組分配”

我要推入此向量的數組的初始化就是這樣。

double NAND_loadtable_d [7][7];

我在哪里錯呢?

std::vector::push_back要求元素類型為CopyAssignable (在傳遞諸如NAND_loadtable_d的左值時)。 普通的舊數組不可CopyAssignable。

除了數組,還可以使用包裝成員數組的類。 幸運的是,標准庫為您提供了以下包裝: std::vector<std::array<std::array<double, 7>, 7>>

如UnholySheep所寫,您必須初始化並且不僅要聲明變量NAND_loadtable_d:

double NAND_loadtable_d [][] = new double[7][];
for (int i = 0; i < 7; i++) {
   NAND_loadtable_d[i] = new double[7];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM