2D ベクトルを使用して大量のベクトルをブロックに分割しようとしています。
問題は、プログラムを実行すると、セグメンテーション違反: 11 エラーが発生することです。コードは次のとおりです。
vector< vector<double> > Audio::something(vector<double>& theData, int N, int M)
{
int n = theData.size();
int maxblockstart = n - N;
int lastblockstart = maxblockstart - (maxblockstart % M);
int numblocks = (lastblockstart)/M + 1;
vector< vector<double> > subBlock;
this->width = N;
this->height = numblocks;
for(int i=0; (i < numblocks); i++)
{
for(int j=0; (j < N); j++)
{
subBlock[i][j] = theData[i*N+j];
}
}
return subBlock;
}
私が考えていたのは、(theData[i*N+j]) の結果を格納する一時ベクトルを実装してから、2D ベクトル内に押し戻すことですが、それは機能しません..何かアイデアはありますか? ありがとうございました :)
PSメソッド名「something」は無視してください。これは、テスト目的で名前を付けただけです。この問題を解決したら、これを変更します。