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];
我在哪里错了?
答案 0 :(得分:2)
std::vector::push_back
要求元素类型为CopyAssignable(当您传递左值,例如NAND_loadtable_d
时)。普通的旧数组不是CopyAssignable。
您可以使用包装成员数组的类来代替数组。幸运的是,标准库为您提供了这样的包装:std::vector<std::array<std::array<double, 7>, 7>>
而不是。
答案 1 :(得分:-4)
正如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];
}