我在这段代码中遇到了分段错误,我不明白为什么:
vector <double> *point;
for (int i = 0; i < point->size(); i += 3) {
for (int j = i + 3; j < point->size(); j += 3) {
if (distance((*point)[i], (*point)[i + 1],(*point)[i + 2], (*point)[j],(*point)[j + 1], (*point)[j + 2]) < treshold){
point->erase(point->begin() + j, point->begin() + j * 3);
j -= 3;
}
}
}
point 是点坐标的向量,类似于 (x1,y1,z1,x2,y2,z3,...,xn,yn,zn)。距离它是一个计算给定 6 坐标的 2 点之间的欧几里得距离的函数。基本上我会做的是“如果两点彼此太近,删除其中一个”。但我得到分段错误。任何的想法?