繁体   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