21xrx.com
2024-11-05 16:33:51 Tuesday
登录
文章检索 我的文章 写文章
C++ 数组复制方法
2023-06-28 01:38:49 深夜i     --     --
C++ 数组 复制 方法 内存拷贝

在 C++ 中,数组是一种存储相同类型元素的方式。有时我们需要将一个数组的数据复制到另一个数组中,这可以通过多种方法实现。本文将介绍三种常见的 C++ 数组复制方法。

方法一:使用 for 循环

这是最基本的 C++ 数组复制方法之一。我们可以使用 for 循环来遍历原数组,并将每个元素复制到目标数组中。示例如下:


int arr1[5] = 4;

int arr2[5];

for(int i=0; i<5; i++)

{

  arr2[i] = arr1[i];

}

方法二:使用 memcpy 函数

`memcpy()` 是标准库中的一个函数,其功能是将一段内存块的数据复制到另一个内存块中。我们可以使用这个函数来将一个数组的内容复制到另一个数组中:


int arr1[5] = 4;

int arr2[5];

memcpy(arr2, arr1, sizeof(arr1));

`memcpy()` 函数需要三个参数:目标数组、源数组和要复制的字节数。在这个示例中,我们将源数组 `arr1` 的内容复制到目标数组 `arr2` 中,`sizeof(arr1)` 参数保证了我们将完整的 `arr1` 数组复制到了 `arr2` 。

方法三:使用 vector 容器

`vector` 是一个 C++ 中的标准库容器,其功能类似于数组。与数组不同的是,`vector` 的长度可以动态改变。这意味着,我们可以使用 `vector` 容器来复制数组,并且无需担心目标数组长度的限制:


int arr1[5] = 5;

vector<int> vec(arr1, arr1+5);  //使用迭代器从 arr1 开始复制 5 个元素到 vec 中

在这个示例中,我们首先将 `arr1` 数组作为参数传递给 `vector` 构造函数,然后使用迭代器从数组起始地址开始复制 5 个元素到 `vector` 容器中。这将创建一个新的 `vector` 对象,其中包含 `arr1` 数组的副本。

结论:

以上三种方法都可以用来复制数组。使用 for 循环是最基本的方法,但是它适用于小型数组。`memcpy()` 函数可以处理任何大小的数组,但是如果处理的是类对象或用户定义类型,会出现问题。使用 `vector` 容器可以避免数组长度限制的问题,同时也适用于任何数据类型的副本复制。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复