【发布时间】:2019-02-08 04:37:03
【问题描述】:
int * result = new int[size1 + size2];
copy(arr1, arr1 + size1, result);
copy(arr2, arr2 + size2, result + size1);
取自:https://stackoverflow.com/a/12791344/6268615
有人可以解释更多关于参数的细节吗?我已经浏览了 c++ 的文档,但仍然不明白。
此代码是通过使用复制功能将两个数组合并为一个动态数组。
【问题讨论】:
-
“这段代码使用复制功能将两个数组合并为一个动态数组。”听起来你已经明白了。你有什么问题?
-
您好,感谢您的回复,我不了解函数中的参数。
-
我建议你把涉及到的数组画在纸上,尤其是
result。然后将箭头用于您拥有的指针,尤其是result + size1。 -
您也可以对
copy(arr2, arr2 + size2, copy(arr1, arr1 + size1, result));执行相同的操作,因为copy返回刚刚复制的元素之后的位置。这有帮助吗?可能不会。 -
你应该阅读关于动态分配内存的内容,这里借助 new 运算符,分配的内存等于 size1 + size2 的大小,并且复制函数需要 3 个参数第一个基地址,第二个位置地址在数组中直到我们必须复制它,第三个参数是它应该被复制到哪里意味着结果数组中的位置地址。
标签: c++