有人可以解释一下复制功能的作用吗?

Can someone please explain what does copy function do?

本文关键字:功能 复制 一下 作用 解释      更新时间:2023-10-16
int * result = new int[size1 + size2];
copy(arr1, arr1 + size1, result);
copy(arr2, arr2 + size2, result + size1);

取自: https://stackoverflow.com/a/12791344/6268615

有人可以解释有关参数的更多详细信息吗?我已经浏览了 c++ 的文档,但仍然不明白。

此代码使用 copy 函数将两个数组合并为一个动态数组。

基本上这就是copy参数的含义:

copy( StartPositionSource, EndPositionSource, StartPositionTarget )

从源复制到目标。

给定您的示例:

copy(arr1, arr1 + size1, result);
copy(arr2, arr2 + size2, result + size1);

假设 arr1 有 2 个元素,arr2 有 3 个元素,你会得到:

result = [arr1[0], arr1[1], arr2[0], arr2[1], arr2[2]]

result指向的动态数组足够大,可以一个接一个地包含arr1arr2。第一copy

copy(arr1, arr1 + size1, result);

从动态数组中由result指向的位置开始复制范围中的每个元素[arr1, arr1 + size1),即动态数组的第一个元素。

arr1复制到[result, result + size1)后,您希望从result + size1开始复制arr2。这是通过以下方式实现的:

copy(arr2, arr2 + size2, result + size1);