21xrx.com
2024-11-05 18:57:52 Tuesday
登录
文章检索 我的文章 写文章
C++实现合并数组函数
2023-06-27 22:49:11 深夜i     --     --
C++ 合并 数组函数

在C++编程中,合并两个数组是一个常见的需求。为了实现此功能,可以编写一个函数来合并两个数组。本文介绍如何使用C++编写一个简单的函数来合并两个数组。

第一步是定义函数名和参数。在此示例中,我们将创建一个名为“mergeArrays”的函数,该函数将接受两个参数 - 两个整数类型的数组。


void mergeArrays(int arr1[], int arr2[], int n1, int n2)

其中,“arr1”和“arr2”是要合并的两个数组,“n1”和“n2”是它们的大小。要注意的是,这两个数组必须是已排序的数组。

第二步是创建一个新的数组,并复制两个数组的元素到新的数组中。这可以通过使用for循环来实现。我们可以使用C++标准库中的vector来创建一个新的数组。


vector<int> mergedArray; // create a new vector to store merged array

// add array elements of arr1 to the vector

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

 mergedArray.push_back(arr1[i]);

}

// add array elements of arr2 to the vector

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

 mergedArray.push_back(arr2[i]);

}

现在,“mergedArray”向量包含两个数组的所有元素。下一步是对向量进行排序,以使其按升序排序。


// sort the merged vector in ascending order

sort(mergedArray.begin(), mergedArray.end());

最后一步是将排序后的向量中的元素复制回原始的两个数组中。这可以通过循环访问向量的元素并将其复制到数组中来完成。


// copy the elements back to array1 and array2

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

 arr1[i] = mergedArray[i];

}

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

 arr2[i] = mergedArray[n1 + i];

}

现在,数组arr1和arr2都包含原始两个数组的元素,并以升序排序。

下面是整个函数的完整代码:


void mergeArrays(int arr1[], int arr2[], int n1, int n2) {

 vector<int> mergedArray; // create a new vector to store merged array

 // add array elements of arr1 to the vector

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

  mergedArray.push_back(arr1[i]);

 }

 // add array elements of arr2 to the vector

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

  mergedArray.push_back(arr2[i]);

 }

 // sort the merged vector in ascending order

 sort(mergedArray.begin(), mergedArray.end());

 // copy the elements back to array1 and array2

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

  arr1[i] = mergedArray[i];

 }

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

  arr2[i] = mergedArray[n1 + i];

 }

}

在这篇文章中,我们介绍了如何使用C++编写一个函数来合并两个已排序的数组。这个函数使用向量作为中间变量来合并两个数组,并使用排序算法对向量进行排序。最后,函数将排序后的元素复制回两个原始数组中以得到排序后的数组。这是实现这一常见需求的一种简单而有效的方法。

  
  

评论区

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