我需要从文件中读取一个数组。数组在文件中不是连续排序的,必须跳转“偏移”字节才能获取下一个元素。假设我读取了一个非常大的文件,那么效率更高。
1) 使用增量相对位置。
2) 使用绝对位置。
选项1:
int var[N];
seekg(0);
for (int i=0; i<N; i++) {
file.read( (char*) var+i, sizeof(int))
seekg(offset,ios_base::cur);
}
选项2:
int var[N];
for (int i=0; i<N; i++) {
file.seekg(offset*i);
read( (char*) var+i, sizeof(int))
}