在这种情况下,哪种索引方式最合适?

时间:2012-12-31 14:21:16

标签: c++ pointers

你能告诉我哪种功能更快吗?或许他们都错了,你知道更好的方法。提前谢谢。

double* solveDiagonal(double* A, double* B, int n)
{
    double* X = new double[n];

    for(int i = 0; i < n; i++)
        X[i] = B[i] / A[i*n + i];

    return X;
}


double* solveDiagonal(double* A, double* B, int n)
{
    double* X = new double[n];
    double** pA = new double*[n];

    for(int i = 0; i < n; i++)
        pA[i] = &A[i*n];

    for(int i = 0; i < n; i++)
        X[i] = B[i] / pA[i][i];

    delete [] pA;

    return X;
}

1 个答案:

答案 0 :(得分:1)

虽然我猜第二个因为更多的间接和分配而变慢,但你真的需要测试和分析来回答这类问题。