我正在通过运行具有不同配置的程序读取统计数据。假设有 6 种配置(a
, b
, ..., f
)。配置可能不会线性变化,因此如果您将测量值视为表格,则表格中可能存在间隙。问题是关于在内存中构建这些统计数据。
首先想到的是将这些配置读取到动态分配的 6 深数组或数组中:
struct data ******measurements;
现在这工作正常。您的内存开销非常小(实际上只会分配具有数据的配置),并且访问时间为O(1)
.
除了大多数人不喜欢******
指针这一事实之外,这还有一个缺点,即添加配置意味着向数组添加维度,这可能会变得很难看,除非对数组的读/写封装在函数中。(Write 已经被封装以在必要时处理分配,所以这实际上没什么大不了的)。
想到的另一个想法是使用 AVL 树或其他东西的映射struct config
(struct data
我已经有了,所以没有实现开销)。这解决了扩展配置参数的问题,但减少了对O(log(n))
.
O(log(n))
为了有所作为,测试的数量可能会变得相当大。
我的问题是:在这里使用 6 深的嵌套数组是否合理?或者有没有更好的方法来做到这一点?