21xrx.com
2025-06-11 15:28:34 Wednesday
文章检索 我的文章 写文章
C++数组去重的方法及实现
2023-07-06 04:33:10 深夜i     --     --
C++ 数组 去重 方法 实现

在C++程序中,数组去重是一项常见且重要的任务。它可以使数组中的重复元素被删除,从而使数组的数据更加清晰和有序。下面我们就来学习一些C++数组去重的简单方法及实现。

方法一:使用STL库函数unique()

STL提供了一个unique()函数,可以非常简单地去除数组中的重复元素。以下是一个简单的实现:

int a[] = 1;
int n = sizeof(a) / sizeof(a[0]);
sort(a, a + n);
n = unique(a, a + n) - a;
for (int i = 0; i < n; ++i)
  cout << a[i] << " ";

运行结果为:1 2 3 4 5

方法二:使用set容器

使用set容器是一种简单的方法,可以自动去除数组中的重复元素。以下是一个简单的实现:

int a[] = 5 ;
int n = sizeof(a) / sizeof(a[0]);
set<int> s(a, a + n);
for (auto& x : s)
  cout << x << " ";

运行结果为:1 2 3 4 5

方法三:手写去重算法

手写去重算法是一种更基础的方法,可以很好地理解数组去重的本质。以下是一个简单的实现:

int a[] = 3;
int n = sizeof(a) / sizeof(a[0]);
int m = 0;
for (int i = 0; i < n; ++i)
{
  if (i == 0 || a[i] != a[i - 1])
    a[m++] = a[i];
}
for (int i = 0; i < m; ++i)
  cout << a[i] << " ";

运行结果为:1 2 3 4 5

综上,C++实现数组去重的方法有多种,其中使用STL库函数unique()、使用set容器和手写去重算法是比较常见和简单的方法,它们都可以很好地去除数组中的重复元素。在实际应用中,我们可以根据实际情况选择最适合的方法进行使用,从而使程序更加高效和简洁。

  
  

评论区