21xrx.com
2024-12-22 22:39:46 Sunday
登录
文章检索 我的文章 写文章
C++实现:删除数组中重复元素
2023-07-02 06:09:06 深夜i     --     --
C++ 数组 删除 重复元素 实现

C++是一种面向对象的编程语言,广泛应用于各种领域,如游戏开发、桌面应用和科学计算。在C++编程中,我们经常需要处理数组。其中一个常见问题是如何删除数组中的重复元素。本文将介绍如何使用C++实现这个功能。

首先,我们需要明确删除数组中重复元素的具体操作。对于一个给定的数组,我们需要找出其中所有的重复元素,并将它们从数组中删除,保留数组中第一次出现的元素。

我们可以使用两个指针来处理数组中的重复元素。第一个指针表示当前处理到的元素,第二个指针表示当前处理到的重复元素的最后一个位置。当第一个指针遍历到一个元素时,我们检查它是否与前面的元素重复。如果不重复,则将它添加到结果数组中,并将第二个指针移动到该元素的位置。如果重复,则跳过该元素。最终,我们将第二个指针之后的所有元素复制到结果数组中,即删除了重复元素。

下面是具体的C++代码实现:


#include <iostream>

#include <vector>

using namespace std;

vector<int> removeDuplicates(int arr[], int n) {

  vector<int> res;

  if (n == 0)

    return res;

  

  int j = 0;

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

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

      res.push_back(arr[j]);

      j = i;

    }

  }

  res.push_back(arr[j]);

  return res;

}

int main() {

  int arr[] = 5;

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

  vector<int> res = removeDuplicates(arr, n);

  for (int i = 0; i < res.size(); i++) {

    cout << res[i] << " ";

  }

  cout << endl;

  return 0;

}

在这个示例中,我们定义了一个removeDuplicates函数来实现删除重复元素的操作。该函数接受一个整型数组和它的大小作为输入,并返回一个存储了所有非重复元素的vector。我们使用了vector容器,因为它提供了动态大小的数组,可以更便捷地进行元素的添加和删除。

在函数中,我们首先检查输入数组的大小是否为零,如果是,我们直接返回空vector。否则,我们定义一个指针j来表示当前处理到的重复元素的最后一个位置,初始值为零。然后,我们遍历数组的所有元素,从索引1开始。

在遍历过程中,我们检查当前元素arr[i]是否与前面的元素arr[j]重复。如果不重复,则将arr[j]添加到结果vector中,并将j移动到i的位置。如果重复,则跳过该元素。最终,我们将arr[j]添加到结果vector中,返回它。

在主函数中,我们定义了一个示例数组arr并调用removeDuplicates函数。我们遍历结果vector并输出所有元素。执行程序,我们可以看到打印出的结果是 3,即已成功删除了数组中所有的重复元素。

总结起来,在C++中,删除数组中的重复元素可以使用两个指针来实现。代码实现时,我们可以使用vector容器来方便地添加和删除元素。这个技巧在实际编程中经常被使用,对于开发效率和程序性能都具有重要意义。

  
  

评论区

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