21xrx.com
2024-12-22 22:12:50 Sunday
登录
文章检索 我的文章 写文章
C++如何删除数组重复元素
2023-06-30 21:19:55 深夜i     --     --
C++ 删除 数组 重复元素

在C++中,删除数组中的重复元素是一个比较常见的问题。实际上,有许多种方法可以实现这个功能,但是其中一种最常用和最方便的方法是使用STL(标准模板库)中的算法。

首先,我们需要使用sort()函数对数组进行排序,以便我们能够更轻松地比较重复元素。一旦数组被排序,我们就可以使用unique()函数来查找并删除所有重复元素。unique()函数使用两个迭代器作为参数,其中第一个迭代器指向数组的第一个元素,第二个迭代器指向数组的最后一个元素。unique()函数返回一个新的迭代器,指向数组中未被删除的第一个重复元素的位置。最后,我们可以使用erase()函数来删除所有重复元素。

下面是删除数组重复元素的示例代码:


#include <iostream>

#include <algorithm>

using namespace std;

int main() {

  int myArr[] = 1;

  int newArr[8];

  sort(myArr, myArr + 8);

  auto newEnd = unique(myArr, myArr + 8);

  int newSize = distance(myArr, newEnd);

  copy(myArr, newEnd, newArr);

  for (int i = 0; i < newSize; ++i) {

    cout << newArr[i] << " ";

  }

  return 0;

}

在这个例子中,我们首先使用sort()函数对myArr数组进行排序。然后,我们使用unique()函数查找所有重复元素,并将它们移到数组的末尾。最后,我们使用distance()函数计算新数组的大小,并使用copy()函数将数组复制到newArr数组中。最后,我们遍历newArr数组并输出结果。

在使用STL算法处理数组时,请确保您已包含algorithm头文件,并熟悉STL算法的基本用法。STL算法是C ++语言的一个非常强大的特点,并且可以帮助程序员以最少的代码来解决许多不同的问题。

  
  

评论区

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