我要做的是使用未知变量填充特定矩阵的值。
这是第一个实现:
#define PHI(I,J,K) phi[xlength*ylength*(I)+xlength*(J)+(K)] //Macro that calls function
其中 phi 是尺寸为 xlength*ylength*tlength 的一维矩阵
或者
phi= new double[xlength*ylength*tlength]; //code for phi
另一种选择是定义一个函数,如
void PHI(double *&phi, int &I, int &J, int &K, double &value) //declare function
{
phi[xlength*ylength*I+xlength*J+K]=value; //return specific value of phi
}
我会在这样的地方使用宏或函数:
for (int i=0;i<tlength;i++) //just making a loop here
{
for (int j=0;j<ylength;j++)
{
PHI(i,j,1)= stuff here //The macro or the function would go here
}
}
所以我正在做的是使用宏来指向矩阵 phi[] 的特定单元格,或者我正在使用函数来填充矩阵 phi[] 的特定值。
哪个更快?