21xrx.com
2025-03-24 18:35:49 Monday
文章检索 我的文章 写文章
C++ 数组合并去重实现
2023-06-27 06:49:42 深夜i     11     0
C++ 数组 合并 去重 实现

C++是一种面向对象的编程语言,在实际开发中经常需要使用数组来存储数据。数组合并和去重是常见的操作,能够有效地提高代码的效率和可读性。

在C++中,实现数组合并的方式有很多种,其中比较常见的是使用循环结构。下面是一个示例代码:

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[]=1;
int b[]=5;
int c[8];
int i,j,k;
int m=sizeof(a)/sizeof(a[0]);
int n=sizeof(b)/sizeof(b[0]);
k=0;
for(i=0;i<m;i++)
{
  c[k]=a[i];//将数组a复制到数组c中
  k++;
}
for(j=0;j<n;j++)
{
  c[k]=b[j];//将数组b复制到数组c中
  k++;  
}
sort(c,c+m+n);//排序合并后的数组
cout<<"合并后的数组为:";
for(i=0;i<m+n;i++)
{
  if(c[i]!=c[i+1])//去重
    cout<<c[i]<<" ";
}
return 0;
}

该示例代码中,先定义了两个数组a和b,并创建一个c数组来存储合并后的数组。使用循环结构将数组a和数组b中的元素复制到数组c中,然后使用sort函数对数组c进行排序,最后通过去重的方式输出合并后的数组。

关于数组去重的实现,很多人喜欢使用STL库中的unique函数来实现。但是,在实际开发中使用STL库可能会增加代码的运行时开销,也会降低代码的执行效率。因此,在C++中,推荐使用手动去重的方式实现数组去重。

下面是一个示例代码:

#include<iostream>
using namespace std;
int main()
{
int dup_array[]=4;
int len=sizeof(dup_array)/sizeof(dup_array[0]);
int a[8],cnt=0;//创建一个新数组和一个计数器
for(int i=0;i<len;i++)
{
  int temp=dup_array[i];//获取当前元素值
  int j=0;
  for(j=0;j<cnt;j++)
  {
    if(temp==a[j])//判断当前元素是否已在数组中
      break;
  }
  if(j==cnt)//如果不在数组中则将当前元素加入新数组
  {
    a[cnt]=temp;
    cnt++;
  }
}
cout<<"去重后的数组为:";
for(int i=0;i<cnt;i++)
  cout<<a[i]<<" ";
return 0;
}

该示例代码中,先创建了一个原始数组dup_array,并定义了一个新数组a和一个计数器cnt。使用双重循环结构,遍历原始数组中的每个元素,判断每个元素是否在新数组中。如果不在新数组中,则将该元素加入新数组。最后输出去重后的新数组。

综上所述,使用循环结构实现数组合并和手动去重的方法在C++编程中是比较常见和实用的,能够提高代码的效率和可读性。如果您在实际开发中需要实现数组合并和去重的功能,可以参照以上示例代码进行开发。

  
  

评论区

请求出错了