在 Qt 中,我有一个 3-D int 数组(比如 ID[x][y][z]
),我需要在计算期间将其设置回 0。
有没有不使用循环的有效方法?
我需要重新初始化,因为我正在运行一个具有简单成本函数的特定算法,以获得对以下更详细计算的估计,并且我想使用相同的数据结构。简单地覆盖数组不是一种选择,因为算法会在写入条目之前读取并检查条目。
最佳答案
迟早会有一个循环,但您可以将其委托(delegate)给另一个更优化的函数。
此外,如果“3D 数组”实际上是一些基本类型的数组(如 int
或 char
)的数组,那么所有内存都是连续的因此您可以使用单个函数调用在单个调用中清除所有内存。
现在使用哪个函数;在 C++ 中,基本上可以使用两个函数:旧 C memset
函数和 C++ std::fill
功能。两者都应该工作正常,具有适当的转换和大小,以将所有数据设置为特定值。
关于c++ - 如何在 Qt/C++ 中有效地重新初始化多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30484410/