这部分代码重构的要求是这样的
1、输入不用std::vector,而是用指针的形式,例如要修改
std::vector<float> XXXXXXXXX(const std::vector<float>& vPoints, int vBatchSize, int vNumPoint, float vThres);
2、整个计算过程中不使用CPoint这个类,输入数据用指针的形式来保存,例如要修改
CPoint m_Center{ 0, 0, 0 };
void __findXXXXX(std::vector<int>& voMaxVertexIndex, std::vector<int>& voMinVertexIndex, const std::vector<CPoint>& vVertexSet)
想请问各位这俩个需求是什么意思……怎么实现吗?是都换成指针,数组的方式?
谢谢
std::vector<float> 可以用一个 float* 的变量代替
CPoint 可以使用一个二级指针代替
举例入下:
std::vector<float> v;可以替换为:
float *vp = new float[v.size()];
然后把v中的元素放在vp这个指针里就可以了。
for(int i = 0;i<v.size();i++)
vp[i] = v.at(i);
CPoint看你图片中输入了3个参数(CPoint m_Center{ 0, 0, 0 }),那么就可以用一个数组代替,
std::vector<CPoint> vv;可以替换为(假设CPoint的三个参数是int类型):
int** vvp = new int*[vv.size()];
for(int i=0;i<vv.size();i++)
{
vvp[i] = new int[3]; //CPoint的三个参数
vvp[i][0] = vv.at(i).x; //CPoint的第一个参数
vvp[i][1] = vv.at(i).y; //CPoint的第一个参数
vvp[i][2] = vv.at(i).z; //CPoint的第一个参数
}
如有帮助,请帮忙采纳一下,谢谢。