在二进制文件中存储2D数组的最节省时间的方法

时间:2012-01-07 13:28:46

标签: c optimization binaryfiles multidimensional-array

我需要有关在二进制文件中存储二维数组的建议。 我需要它非常广泛,能够非常快速地添加新的行和列。

到目前为止,我已经提出了这种方法:我为每一行分配一个固定大小的内存,每次我添加一个新行时,我会用内存开销(比如说1000字节)填充它,这样我就不会每次添加新列时都需要移动行。当开销内存被填满时,我增加了另外1000字节的开销,依此类推。

这种方法被证明是非常低效的,因为当我添加一个新列时我必须跳过这些行。

理想情况下,如果我不需要添加新行或列,我会偶尔存储每一行​​,但这对我想要的东西是不可能的。

1 个答案:

答案 0 :(得分:1)

你的方法非常好,事实上它是许多数据库(notabene oracle)使用的。要跳过“我的行在哪里”的障碍,您可以维护行的内存索引,只需将一个long []存储文件偏移到行的开头(或每个第2,第4,第8,... 。)排。这样您就可以快速跳转到您的行,然后按照最初的计划添加您的列。