[英]C++: fastest to write vector file to output in normal text mode (not binary) in C or C++
將std::vector
(或任何連續的容器)寫入非二進制文件(即文本模式)的最快方法是什么? 就我而言,速度很重要,矢量不斷產生並寫入文件。
在二進制模式下,它是相當直接的,因為std::vector
在內存中是連續的。 注意我不想依賴Boost序列化。 (雖然我可能被迫以最優雅的方式......)。 我還需要一系列字符來分隔元素(即空格)
這就是我現在正在做的事情(就是一個例子),但即使我為一個vector
寫了一個運算符<<
,這也是非常通用的。 是否有更優化的此代碼版本,還是我留下了這個?
std::ofstream output(...);
...
template <typename T>
write_vec_to_file (const &std::vector<T> v)
{
for (auto i: v)
output << i << " ";
output << "\n";
}
作為一個附帶問題,如果一個人繼續調用std::cout << ...
是否只是開始std::cout
的開銷? 我的猜測顯然是肯定的
例如,您可以使用std::copy
std::vector<int> v = { 1, 2, 3, 4, 5 };
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.