Хочу переписать неправославный код под линукс, только начал разбираться, и не могу понять что сделал не так.
То что нужно переписать:
void GetFirstDiff(const CArray<double>& arSrc, CArray<double>& arDest)
{
CArray<double> arTmp;
arTmp.SetSize(arSrc.GetCount());
for (int nPos = 1; nPos < arSrc.GetCount(); nPos++)
{
if(nPos + 1 > arSrc.GetCount() - 1)
continue;
double ndY = arSrc[nPos + 1] - arSrc[nPos];
arTmp.SetAt(nPos, ndY);
}
arDest.RemoveAll();
arDest.Copy(arTmp);
arTmp.RemoveAll();
}
То что примерно должно получиться:
void GetFirstDiff(const vector<double>& arSrc, vector<double>& arDest)
{
vector<double> arTmp;
arTmp.resize(arSrc.size());
int nPos = 1;
for (vector<double>::iterator nPosIndex = arTmp.begin(); nPos < arSrc.end(); nPos++)
{
nPos++;
if(nPos + 1 > arSrc.size() - 1)
continue;
double ndY = arSrc[nPos + 1] - arSrc[nPos];
arTmp.insert(nPosIndex, ndY);
}
arDest.clear();
arDest.swap(arTmp);
arTmp.clear();
}