21xrx.com
2024-09-19 23:55:17 Thursday
登录
文章检索 我的文章 写文章
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容器和手写去重算法是比较常见和简单的方法,它们都可以很好地去除数组中的重复元素。在实际应用中,我们可以根据实际情况选择最适合的方法进行使用,从而使程序更加高效和简洁。

  
  

评论区

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