希望我没有错过已经存在的答案。 OBS!我不是在寻找格式化方面的帮助How do I correctly organize output into columns?
我正在生成多列数据,一次一列。每个列都是在for循环的一个步骤中生成的,我在创建值时使用std :: ofstream将所有内容写入文本文件。
现在我的问题是,我可以在创建它们时将每个列写入同一个流吗?
我将尝试用一个例子来澄清:让我们说最终数据如下:
Column1 Column2 Column3
val11 val12 val13
val21 val22 val23
val31 val32 val33
但数据是以这种方式生成的:
for-loop step 1: val11 val21 val31
for-loop step 2: val12 val22 val32
for-loop step 3: val13 val23 val33
我想写这样的流(在for循环中)
stream step 1: val11 empty empty\n val21 empty empty\n val31 empty empty\n
stream step 2: val11 val12 empty\n val21 val22 empty\n val31 val32 empty\n
stream step 3: val11 val12 val13\n val21 val22 val32\n val31 val32 val33\n
我试图获得的东西自然可以通过例如将每列存储在std :: vector或类似物中,然后循环打印到流。但是,在我的情况下,每列都有n_choose_k值,我希望我的应用程序不要太快耗尽内存。
第三个选项当然是将每个列存储在某个缓冲区文件中或单独的ofstream中以抵消RAM,然后在最后进行某种合并。
关于潜在的预分配,我事先知道每列中的元素数量。