1
我必須在C++中將相同大小的5到6個大數組寫入文本文件。我只用一個「for循環」將所有數組寫入文本文件。以下是我正在使用的代碼。將數組寫入到C++中的文本文件中
ofstream kx_ecl("COARSE_PERMX.GRDECL");
ofstream ky_ecl("COARSE_PERMY.GRDECL");
ofstream kz_ecl("COARSE_PERMZ.GRDECL");
ofstream ntg_c("COARSE_NTG.GRDECL");
ofstream phi_c("COARSE_PORO.GRDECL");
ofstream multbv("MULTBRV.GRDECL");
kx_ecl<<"PERMX"<<endl;
ky_ecl<<"PERMY"<<endl;
kz_ecl<<"PERMZ"<<endl;
ntg_c<<"NTG"<<endl;
phi_c<<"PORO"<<endl;
multbv<<"MULTBRV"<<endl;
for (i=0;i<N;i++) {
kx_ecl<<new_KX[i]<<endl;
ky_ecl<<new_KY[i]<<endl;
kz_ecl<<new_KZ[i]<<endl;
ntg_c<<new_NTG[i]<<endl;
phi_c<<new_por[i]<<endl;
multbv<<MULTBRV[i]<<endl;
}
kx_ecl<<"/";
ky_ecl<<"/";
kz_ecl<<"/";
ntg_c<<"/";
phi_c<<"/";
multbv<<"/";
kx_ecl.close();
ky_ecl.close();
kz_ecl.close();
ntg_c.close();
phi_c.close();
multbv.close();
我在這裏的問題是,它是更快,如果我輸出他們每個人單獨逐一在這種情況下,將有許多for循環或離開它,因爲它是。另外,有沒有辦法將數組寫入文件而不使用for循環?我在問,因爲與我的代碼中的實際計算相比,輸出到文件需要花費很多時間。
我認爲你會看到的唯一區別是每個文件都應該按順序生成而不是一次全部生成,所以是的,一些文件應儘快寫入,但總時間應保持不變。 –
在這種情況下詢問「更快」是沒有意義的。這將取決於許多因素。但是,一般來說,在其他條件相同的情況下,順序寫入一個文件,然後逐漸寫入下一個文件等,可以實現更好的CPU和磁盤緩存,並且可以減少查找時間和文件碎片。或者,如果你的文件太小以至於這些效果不起作用,那麼哪種方式更快也是無關緊要的。 – hyde