C++ 在所需大小未知时使用内存中的空间

标签 c++

我正在用 C++ 开发一个小项目,其中一个操作的完整结果最终将写入一个文件。此操作是在潜在大矩阵的小块上完成的。由于每次处理一个 block 时不断写入磁盘似乎效率很低,我认为最好将所有部分结果存储在内存中,然后一次性写入文件。问题在于处理每个数据 block 的输出可以具有可变大小,并且在处理之前无法知道所需的大小。所以我想知道,我可以使用什么作为存储所有部分结果的缓冲区?我想过使用 vector ,但由于我对 C++ 不是很熟悉,我想我会问是否有更好的方法。

最佳答案

ofstreams 已经被缓冲,C FILE 流也是如此。在这两种情况下,操作系统执行缓冲和 I/O 调度。

只是天真地使用它们,不要担心重新发明它,除非分析显示您的 I/O 是瓶颈。

关于C++ 在所需大小未知时使用内存中的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25332096/

相关文章:

c++ - kdevelop #include

c++ - 将 opencv 的 cvScalar 与 Ycbcr 值一起使用

c++ - C++ 中 OSlib for psp 的冲突问题

c++ - GDB:包含 STL 容器的 Pretty-Print 类

c++ - 如何在 Visual C++ 中查找导致调试断言错误的行/方法

c++ - 从 AVI 捕获 OpenCV 帧

C++ 使用动态分配的内存乘法矩阵

c++ - 如何在 boost multi_array 容器中存储值?

c++ - 等待单个对象崩溃

java - fatal error : jni_md. h:没有这样的文件或目录#include "jni_md.h"