所以我有一个1D数组,代表代表游戏世界的数字的3D网格,我访问单个条目(x,y,z),例如:
array[x + width * (y + height * z)]
有没有一种方法可以复制整个行(例如,(1,1)的所有z值)而无需循环(我已经在每个条目中循环循环。我想通过检查空的空位来保存性能行(所有0)并跳过处理)?如果可能的话,我宁愿不要使用锯齿状的数组。
您必须确保将数据元素线性排列为内存中的行:
row|row|row
...等等
您可以使用问题中提到的相同类型的数组访问算术算术,以确定该行的索引范围,让我们调用范围n->m
,然后根据以下内容进行元素n->m
的快速块副本:ul>
memcpy
- C/C Array.Copy
-c#Arrays.copyOfRange
-Java,适合本地类型;循环副本可能更好。每个将n
和m-n
分别为start
和size
参数。
大多数语言都会具有某种形式的块数组副本的实现,该副本使用引擎盖下的本机代码,即执行A 本机副本。。