21xrx.com
2024-11-25 05:10:56 Monday
登录
文章检索 我的文章 写文章
C++数组合并方法
2023-06-29 16:25:09 深夜i     --     --
C++ 数组 合并 方法 拼接

在C++编程中,我们经常需要合并两个或多个数组。合并数组是指将两个或多个数组的元素合并到一个新的数组中。在本文中,我们将讨论几种可用于合并数组的方法。

方法一:使用for循环

我们可以使用for循环来合并两个数组。我们可以声明一个新的数组,并使用一个循环结构将第一个数组的元素复制到新数组中。然后,再使用另一个循环将第二个数组的元素复制到新数组中。

以下是使用for循环合并两个数组的代码示例:


int arr1[] = 1;

int arr2[] = 4;

int len1 = sizeof(arr1) / sizeof(arr1[0]);

int len2 = sizeof(arr2) / sizeof(arr2[0]);

int len = len1 + len2;

int arr3[len];

for (int i = 0; i < len1; i++) {

  arr3[i] = arr1[i];

}

for (int i = 0; i < len2; i++) {

  arr3[len1 + i] = arr2[i];

}

方法二:使用STL的合并函数

另一种方法是使用STL的合并函数。这个函数在algorithm头文件中定义。合并函数将两个有序数组合并到一个新数组中。我们可以首先使用sort函数对两个数组进行排序,然后使用合并函数将它们合并到新数组中。

以下是使用STL函数合并两个数组的代码示例:


int arr1[] = 2;

int arr2[] = 5;

int len1 = sizeof(arr1) / sizeof(arr1[0]);

int len2 = sizeof(arr2) / sizeof(arr2[0]);

int len = len1 + len2;

int arr3[len];

sort(arr1, arr1 + len1);

sort(arr2, arr2 + len2);

merge(arr1, arr1 + len1, arr2, arr2 + len2, arr3);

方法三:使用向量

我们还可以使用向量来合并两个数组。向量是一个动态数组,可以根据需要动态分配空间。我们可以将两个数组插入到向量中,然后使用vector的方法将它们合并到一个新数组中。

以下是使用向量合并两个数组的代码示例:


int arr1[] = 2;

int arr2[] = 6;

int len1 = sizeof(arr1) / sizeof(arr1[0]);

int len2 = sizeof(arr2) / sizeof(arr2[0]);

vector<int> v(len1 + len2);

for (int i = 0; i < len1; i++) {

  v[i] = arr1[i];

}

for (int i = 0; i < len2; i++) {

  v[len1 + i] = arr2[i];

}

int* arr3 = &v[0];

结论

这些方法都可以成功地合并两个或多个数组。选择哪种方法取决于特定的情况。如果我们需要将两个无序数组合并到一个新的无序数组中,那么我们可以使用for循环。如果我们需要将两个有序数组合并到一个新的有序数组中,那么我们可以使用STL的合并函数。如果我们需要将两个动态数组合并到一个新数组中,那么我们可以使用向量。无论我们使用哪种方法,我们必须确保新数组有足够的空间来容纳所有的元素。

  
  

评论区

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