gpt4 book ai didi

c++ - ostream_iterator 将数字数据写入文件的性能?

转载 作者:搜寻专家 更新时间:2023-10-31 00:23:27 29 4
gpt4 key购买 nike

我有各种带有数字数据的 std::vector 实例,主要是 int16_t、int32_t 等。我想以尽可能快的方式将这些数据转储到文件中。如果我使用 ostream_iterator,它会在一次操作中写入整个内存块,还是会遍历 vector 的元素,为每个元素发出写操作?

最佳答案

在我熟悉的任何实现中,流迭代器和 vector 绝对不会使用 block 拷贝。例如,如果 vector 项类型是类而不是 POD,则直接复制将是一件坏事。我怀疑 ostream 也会格式化输出,而不是直接写入值(即,ascii 而不是二进制输出)。

使用 boost::copy 可能会更好,因为它经过专门优化以在可能的情况下进行 block 写入,但最实用的解决方案是直接使用 &v 对 vector 内存进行操作[0].

关于c++ - ostream_iterator 将数字数据写入文件的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1992788/

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