萌新总结的C++数组去重的两个方法

方法一:利用sort函数

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
 int n;
 cin>>n;
 int a[n];
 for(int i=0;i<n;i++)
 {
  cin>>a[i];
 }
 sort(a,a+n); //将数组从小到大排序 
 int m=unique(a,a+n)-a; //unique函数只能去除相邻重复的元素
 for(int i=0;i<m;i++)
 {
  cout<<a[i]<<" ";
 }
 return 0;
}
/* unique等同于 
 for(int i=1;i<n;i++) 
    {
        if(a[i]!=a[i-1]) cout<<a[i]<<" ";
    }
*/ 

这个方法的弊端是不能按照原来的顺序输出,即如果输入的是1 3 2 3 1,那么输出的是1 2 3.

方法二:利用数组循环判断

#include <iostream>
using namespace std;
int main()
{
 int n;
 cin>>n;
 int a[n]for(int i=0;i<n;i++)
 {
  cin>>a[i];
 }
 cout<<a[0]<<" "; //a[0]前面不可能有相同的 
 for(int i=1;i<n;i++)
 {
  int j=i-1,c=1;
  for(;j>=0;j--)
  {
   if(a[i]==a[j]) {c=0;break;}
  }
  if(c==1) {cout<<a[i]<<" ";} //输出与前面数字不同的数字 
 }
 return 0;
}

这个方法就可以按照原来的顺序输出了。