【发布时间】:2013-07-06 18:04:25
【问题描述】:
我需要从文件中读取一个数组。数组在文件中不是连续排序的,必须跳转“偏移”字节才能获取下一个元素。 假设我读取了一个非常大的文件,那么效率更高。
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))
}
【问题讨论】: