私が最後に配列にアクセスしてからしばらく経ちました(最近ベクトルを使用しています)。使用しているライブラリdouble array
がこの配列のアクセサーが使用するタイプのパラメーターを受け入れるため、2Dベクトルを2D配列に変換し直す必要があります。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が発生します。
誰かがアドバイス、またはベクトルを2D配列に変換するためのより良い方法を提案できますか?
ありがとう