我有一个迭代算法,用 C++ 编写。我正在使用yaml-cpp。在每次迭代中,我发送一些数据到 YAML::Emitter 对象。当算法终止时,我使用 YAML::Emitter::c_str() 将底层缓冲区写入 ofstream。
但是,我更愿意每隔几百次迭代将缓冲区写入文件,并在每次增量时从 YAML::Emitter 对象中清除写入的数据。有两个原因:
1)如果程序意外终止,我想访问(尽可能多的)磁盘上的输出。
2) YAML::Emitter 对象自扩展,我不想浪费内存。
解决这个问题的最佳方法是什么?