LINUX.ORG.RU

Сообщения hikinus

 

Переписать CArray в vector

Форум — Development

Хочу переписать неправославный код под линукс, только начал разбираться, и не могу понять что сделал не так.

То что нужно переписать:

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();
}

 , ,

hikinus
()

RSS подписка на новые темы