假设我有2个不同大小的数组,即
int arr[] = {0,1,2,3,4,5,6,7,8,9};
int *arr2 = new int[5];
Run Code Online (Sandbox Code Playgroud)
我想浅层复制其中一些,Deep拷贝等效
int j =0;
if(!(i%2))
{
arr2[j]=arr[i];
j++;
}
Run Code Online (Sandbox Code Playgroud)
现在,arr2的打印将输出:0,2,4,6,8
我想要浅拷贝的原因是因为我希望arr2更新为arr的任何更改.
那就是我在arr中循环和平方所有元素
我想要arr2输出:0,4,16,36,64
这两个数组是同一类的一部分,一个是我的多边形信息,另一个是数据驱动.arr实际上是4000多个元素,而arr2接近3000.目前我的算法在深度复制方面效果很好.但是因为我需要每个更新帧深度复制3000个元素,我浪费资源,并且想知道我是否可以通过浅拷贝以某种方式做到这一点,所以我不必每帧都更新arr2.我的代码需要它的工作方式,arr实际上有重复的arr2值.arr2是动画的点列表.然后将数据复制到arr,其中包含顶点的位置数据.这是因为arr包含多个bezier补丁,其中一些补丁与另一个补丁共享一条或多条边.但是我希望在动画时忽略表面上的中断.
重要的是,副本涉及索引
arr2[j]=arr[i];
Run Code Online (Sandbox Code Playgroud)
因为这就是我的代码设置方式.并且该操作是低负载的.