我正在尝试使用 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”,这只是我为测试目的而命名的,一旦我解决了这个问题,我会改变它!