21xrx.com
2024-09-20 00:11:47 Friday
登录
文章检索 我的文章 写文章
C++如何合并两个数组
2023-07-05 03:33:33 深夜i     --     --
C++ 合并 数组 指针 循环

在编程语言中,数组是一种特殊的数据结构,它是一个元素列表,其中每个元素都具有相同的数据类型。C++中,我们经常需要在程序中合并两个数组,这可以通过以下几种方法实现:

1. 使用for循环

可以使用for循环遍历一个数组,然后将其添加到另一个数组中。使用此方法的示例代码如下:


#include<iostream>

using namespace std;

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

  int i,j,k;

  i = j = k = 0;

  while(i < n1 && j < n2){

    if(arr1[i] < arr2[j]){

      output[k++] = arr1[i++];

    }

    else{

      output[k++] = arr2[j++];

    }

  }

  while(i < n1){

    output[k++] = arr1[i++];

  }

  while(j < n2){

    output[k++] = arr2[j++];

  }

}

int main(){

  int arr1[] = 30;

  int arr2[] = 5;

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

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

  int output[n1+n2];

  mergeArrays(arr1, arr2, n1, n2, output);

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

    cout<<output[i]<<" ";

  }

  

  return 0;

}

2. 使用STL库

在C++中,STL库是一个十分强大的库,其中提供了许多函数和容器,可以用来快速合并两个数组。使用此方法的示例代码如下:


#include<iostream>

#include<algorithm>

using namespace std;

int main(){

  int arr1[] = 30;

  int arr2[] = 5;

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

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

  int output[n1+n2];

  merge(arr1, arr1+n1, arr2, arr2+n2, output);

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

    cout<<output[i]<<" ";

  }

  return 0;

}

无论你选择哪种方法,都可以实现两个数组的合并。在实际编程中,可以根据所需功能和效率来选择适合自己的方法。

  
  

评论区

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