【发布时间】:2012-04-11 08:29:24
【问题描述】:
我有这个大数据结构,它是一个列表列表列表列表列表的列表。显然,它的处理效率极低。运行我的应用程序所花费的大约 70% 的时间用于在列表末尾的双精度中写入零。我需要一个满足两个约束的更快的替换:
1)所有内存都必须连续分配(也就是一大块内存)
2)我必须使用通常的 A[][][][][] 语法访问这个块
就目前而言,我想使用 *double 来保存整个块并重用我的列表列表...来存储指向块中适当区域的指针。
有更好的想法吗?
【问题讨论】:
-
请问您为什么需要大块内存?稀疏矩阵样式表示将是一个很好的替代方案,但它不适用于此(以及
A[][][][][]语法!) -
为什么必须使用 A[][][][][] 语法?如果你可以放松这个约束,并用一个函数调用代替它,比如 getValue(A,i,j,k,l,m),那么我相信你可以简化你的问题。
-
澄清一下,当您说“列表”时,您不是指链表吗?
-
@JeffFoster 我需要这个块,因为我的矩阵不是稀疏的。在计算过程中,每个元素都会增加一些值
-
@Patrick 我不是唯一的开发人员。我想让其他人继续使用旧语法
标签: c list dynamic allocation replace