21xrx.com
2024-12-22 22:52:10 Sunday
登录
文章检索 我的文章 写文章
如何在C++中删除数组中的重复元素?
2023-07-04 08:34:21 深夜i     --     --
C++ 数组 删除 重复元素

在C++中,删除数组中的重复元素是一项常见的任务。这通常是出于优化或性能方面的原因,因为不同的重复元素可能会导致额外的计算或内存开销。在本文中,将介绍如何使用C++来删除数组中的重复元素。

首先,需要将数组元素排序。这可以使用C++中的sort函数来完成。sort函数的工作原理是将数组元素按照升序或降序排列。排序后,再遍历数组并删除重复元素。使用C++中的unique函数可以找到并删除相邻的重复元素。

以下是如何实现这个过程的示例代码:


#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

int main()

{

 int arr[] = 1 ;

 int n = sizeof(arr) / sizeof(arr[0]);

 

 sort(arr, arr + n);

 

 auto itr = unique(arr, arr + n);

 //itr指向新数组的结尾

 //可以使用distance函数来获得新数组的长度

 int newLength = distance(arr, itr);

 

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

 {

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

 }

 

 return 0;

}

首先,定义了一个大小为六的数组,并将其排序。sort函数的第一个参数是要排序的数组的起始地址,第二个参数是数组的结束地址。使用unique函数来查找连续的相等元素,并将它们移动到数组的末尾。由于unique函数返回的是一个指向新数组末尾的迭代器,可以使用distance函数来计算新数组的长度。

循环遍历新数组,并输出数组中的元素。

在实际的应用中,删除数组中的重复元素可以更简单、更高效地完成,为了实现这一目标,除了使用sort和unique函数的方法以外还有其他的方法。

  
  

评论区

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