自从我上次访问数组以来已经有一段时间了(我最近一直在使用向量),我需要将 2D 向量转换回 2D 数组,因为我使用的库接受了double array
该数组的访问器类型的参数是foo[i][j]
例如。
这是我的代码:
double** setupHMM(vector<vector<double> > &vals, int N, int M)
{
double** temp;
temp = new double[N][M];
for(unsigned i=0; (i < N); i++)
{
for(unsigned j=0; (j < M); j++)
{
temp[i][j] = vals[i][j];
}
}
}
有了这个,我得到error: ‘M’ cannot appear in a constant-expression
我还尝试了以下方法:
double** setupHMM(vector<vector<double> > &vals, int N, int M)
{
double** temp;
for(unsigned i=0; (i < N); i++)
{
temp[i] = new double[N];
for(unsigned j=0; (j < M); j++)
{
temp[j] = new double[M];
temp[i][j] = vals[i][j];
}
}
}
但是,这会产生分段错误 11。
任何人都可以提出任何建议,或者将向量转换为二维数组的更好方法..
谢谢