gpt4 book ai didi

C++:在 C 或 C++ 中以普通文本模式(非二进制)写入 vector 文件以输出最快

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:42 24 4
gpt4 key购买 nike

编写 std::vector 的最快方法是什么? (或与此相关的任何连续容器)到不是二进制文件(即文本模式)的文件?在我的例子中,速度很重要, 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, " "));

关于C++:在 C 或 C++ 中以普通文本模式(非二进制)写入 vector 文件以输出最快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15857331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com