代码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 ++。
答案 0 :(得分:1)
你的探查者会告诉你什么?
在现代操作系统上,更快的解决方案(由于开销最小)将在内存中映射文件,从而完全避免读取/搜索调用。