我的内存中有一个很大的vector<string>,我想将每个string写入./log.txt,这是我的操作方法:

ofstream ofs("./log.txt");
for (vector<string>::const_iterator cit = vec.begin(); cit != vec.end(); cit++) {
    char buf[30];
    sprintf(buf, "%s\t---@\n", cit->c_str());
    ofs << buf;
}
ofs.close();


我关心磁盘I / O时间,效率高吗?我有更好的主意吗?

最佳答案

这是一个混合想法,它利用了您实际上不需要格式化任何东西的事实:

 for ( /* as you have */ )
 {
     ofs.write(cit->c_str(), cit->size());
     ofs.write("\t---@", 5);
 }

09-06 13:48