必须对每个成员进行输出如struct user { int id; char *name;} x;你不能用fwrite(&x,...
我需要从txt文件中读取五千万个double数据,并且存入vector中,我最初觉得可能是文件io太慢,所以使用了文件内存映射,将文件内容当成block全部读入内存中,然后再一个一个push_back进vector中,但是直接从文件一个一个读数据只需要3分钟,我优化之后反而增加到了5分钟。 我的优化方案是,将文件整块读入内存,放在char*的buff...
vec_similarity.reserve(50000000);while(ss_sim.good()) {//从string流中读入vectorss_sim >> fVecSim; vec_similarity.push_back(atof(fVecSim.c_str())); } 1.如果数据间没有依赖关系的话,可以试试分块多线程读取; 2.另外vector的内存是连续的,如果后面不是要随机访问,而都是遍历的话,用list效率会...