2017-06-17 23 views
-2

CODE 1代碼比較 - 哪個更適合運行時?

while(fin.eof()==false) { 
    fin.read((char*)& Object_2, sizeof(Object_2)); //Reads a record for printing 
    class_object.display(); 

    fin.read((char*)& Object_2, sizeof(Object_2)); //Reads the next record space for eof detection 
    if(fin.eof() == true) 
     break; //Break out of the loop on encountering eof 
    else 
     fin.seekg(-signed(sizeof(Object_1)), ios :: cur); //File Pointer Correction 
} 

CODE 2

while(fin.eof()==false) { 
    fin.read((char*)& Object_2, sizeof(Object_2)); //Reads a record for printing 
    if(fin.eof() == true) 
      break; 
    else 
      class_object.display(); 

哪一個是在運行方面更好? CODE1不允許在while循環中執行不必要的循環步驟。另一方面,當while循環最後一次執行(不必要的循環步驟)時,CODE2會中斷。

P.S.-據我所知,在循環的最後一步節省高達勉強使得在運行任何區別,但我只是好奇,哪一個更好。

注:我用TURBOC++,因爲我的學校的。

+3

如果你關心速度,你必須衡量它。 –

+3

告訴你的講師**停止使用TURBOC++ ** –

+0

做'Object_1'和'Object_2'具有相同的大小?是'fin'某種類型的'std :: istream'? –

回答

1

什麼是您的分析器告訴你嗎?

在現代操作系統上,更快的解決方案(由於最少的開銷)將映射文件到內存中,從而完全避免讀取/查找調用。