21xrx.com
2024-06-03 05:18:02 Monday
登录
文章检索 我的文章 写文章
C++如何去除数组中重复的数字?
2023-07-05 13:09:26 深夜i     --     --
C++ 数组 重复数字 去除 算法

C++是一种强大的编程语言,广泛应用于开发各种类型的软件,包括游戏、操作系统、网络应用和其他应用程序。对于C++开发者来说,一个常见的问题是如何去除数组中重复的数字。在本文中,我们将探讨一些常见的方法来解决这个问题。

方法一:使用set容器

Set是STL库中的一种容器,它可以存储不重复的元素。因此,我们可以使用set容器来删除数组中的重复元素。

下面是一个示例代码:


#include<iostream>

#include<set>

using namespace std;

int main()

{

  int arr[] = 3;

  int n = sizeof(arr)/sizeof(int);

  set<int> s;

  for(int i=0; i<n; i++)

  {

    s.insert(arr[i]);

  }

  cout<<"去重后的数组为:";

  for(int i : s)

  

    cout<<i<<" ";

  

  return 0;

}

在上述代码中,我们首先声明了一个set容器,然后将数组中的元素插入到set容器中。由于set容器只能存储不重复的元素,因此重复的元素不会被插入到容器中。最后,我们遍历set容器中的元素并输出结果。

方法二:使用双层循环

另一个常见的方法是使用双层循环来遍历数组并删除重复的元素。该方法适用于小数组,但对于大数组的性能可能会有所下降。

下面是一个示例代码:


#include<iostream>

using namespace std;

int main()

{

  int arr[] = 3;

  int n = sizeof(arr)/sizeof(int);

  for(int i=0; i<n; i++)

  {

    for(int j=i+1; j<n; j++)

    {

      if(arr[i] == arr[j])

      {

        for(int k=j; k<n-1; k++)

        {

          arr[k] = arr[k+1];

        }

        n--;

        j--;

      }

    }

  }

  cout<<"去重后的数组为:";

  for(int i=0; i<n; i++)

  {

    cout<<arr[i]<<" ";

  }

  return 0;

}

在上述代码中,我们使用双层循环来遍历数组,并使用一个内部循环来删除数组中的重复元素。在内部循环中,我们将重复元素后面的元素向前移动一个位置,并将数组的大小减小1。最后,我们输出去重后的数组。

总结:

总体而言,使用set容器是去除数组中重复元素的更好方法。虽然使用双层循环的方法也可以实现此操作,但是对于大数组的性能可能会有所下降。因此,使用set容器是更好的做法。

  
  

评论区

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