从函数返回二维数组的双精度数

mad*_*ina 1 c++

我有这个类,在某些时候我正在计算两个双精度数组:

double* QSweep::computeIntersection(double m1, double b1, double m2, double b2){
double* v=new double[2];

v[0]= (b2-b1)/(m1-m2);
v[1]= (m1*b2-m2*b1)/(m1-m2);

return v;
}
Run Code Online (Sandbox Code Playgroud)

在类的另一个函数中,我使用此数组来处理其值.根据作为参数传输的值,我获得了两个daoubles的这个数组的几个值.我希望将所有这些值保留在两个双精度数组的数组中.我已经尝试了一些方法,但我有bur错误,segementation故障或所有问题,因为这.欢迎任何想法.

马达里亚,先谢谢你

Kon*_*lph 9

如果它们总是两个值,那么返回一个不是更合乎逻辑(也更有用)std::pair<double, double>吗?这可能会节省很多痛苦,特别是与显式内存管理有关(因为你正在使用new/ delete):

std::pair<double, double> QSweep::computeIntersection(
    double m1, double b1, double m2, double b2
) {
    return std::make_pair( (b2-b1)/(m1-m2), (m1*b2-m2*b1)/(m1-m2));
}
Run Code Online (Sandbox Code Playgroud)