我有一个很大的字符 vector (10^9 个元素),我想知道将这种 vector 写入文件的最快方法是什么。到目前为止,我一直在使用下一个代码:
vector<char> vs;
// ... Fill vector with data
ofstream outfile("nanocube.txt", ios::out | ios::binary);
ostream_iterator<char> oi(outfile, '\0');
copy(vs.begin(), vs.end(), oi);
对于此代码,将所有数据写入文件大约需要两分钟。实际问题是:“我能否使用 STL 使其更快以及如何”?
最佳答案
要写入如此大量的数据 (~1GB),您应该直接写入输出流,而不是使用输出迭代器。由于 vector 中的数据是连续存储的,因此这将起作用并且应该更快。
ofstream outfile("nanocube.txt", ios::out | ios::binary);
outfile.write(&vs[0], vs.size());
关于c++ - 使用 STL 将大型 STL vector 写入文件的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1693089/