我的内存中有一个很大的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);
}