我定義二維動態數組和對數組的arrays.Dimensions分配內存是彼此(256 * 256)相同:縮短的用C二維動態數組算法++期間
double **I1,**I2;
int M=256;
int N=256;
int i,j;
I1= new double *[M+1];
for(i=1;i<=M;i++)
{I1[i]=new double [N+1];}
I2= new double *[M+1];
for(i=1;i<=M;i++)
{I2[i]=new double [N+1];}
然後,我賦值的數組元素。我必須對這些數組執行數學算法。我使用了很多for循環。而且我的代碼工作得非常緩慢。
例如,如果我從I1減去I2和asssigned陣列。減去另一個I3二維陣列中,我使用此代碼:
double **I3;
double temp;
//allocate I3;
I3= new double *[M+1];
for(i=1;i<=M;i++)
{I3[i]=new double [N+1];}
//I3=I1-I2
for(i=1;i<=M;i++){
for(j=1;j<=N;j++){
temp=I1[i][j]-I2[i][j];
I3[i][j]=temp;}
}
如何可以C++的執行時間短,而無需使用用於循環? 你能否告訴我另一種方法?
問候..
+1用於分配單個陣列。所有對「新」的調用都可能是問題的根源,而不是微不足道的循環。 – strager 2010-08-08 09:03:25