21xrx.com
2024-12-22 19:58:16 Sunday
登录
文章检索 我的文章 写文章
C++整数去重方法
2023-07-10 02:02:33 深夜i     --     --
C++ 整数 去重 方法

在C++中,我们经常需要对一组整数进行去重操作,以最终得到一个唯一的整数集合。下面介绍两种常用的去重方法。

方法一:使用STL容器

C++标准模板库(STL)提供了多种容器类,其中set容器可以用于去重。set容器内的元素是不允许重复的,当我们对一组整数插入到set中时,set会自动去重,最终得到一个唯一的整数集合。

下面是一个示例代码:


#include <iostream>

#include <set>

using namespace std;

int main() {

  set<int> nums;

  nums.insert(1);

  nums.insert(2);

  nums.insert(3);

  nums.insert(1);

  nums.insert(4);

  for (auto num : nums)

    cout << num << " ";

  

  cout << endl;

  return 0;

}

运行结果为:1 2 3 4

方法二:使用数组和指针

如果我们不想使用STL容器,也可以使用数组和指针来实现去重操作。具体思路是遍历数组中的每个元素,如果该元素之前未出现过,则将其保存到一个新数组中,并将指针指向下一个位置,否则跳过该元素。最后,新数组中保存的就是去重后的整数集合。

下面是一个示例代码:


#include <iostream>

using namespace std;

int main() {

  int nums[] = 3;

  int len = sizeof(nums) / sizeof(nums[0]);

  int* p = new int[len];

  int n = 0;

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

    bool found = false;

    for (int j = 0; j < n; j++) {

      if (p[j] == nums[i])

        found = true;

        break;

      

    }

    if (!found) {

      p[n++] = nums[i];

    }

  }

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

    cout << p[i] << " ";

  }

  cout << endl;

  delete[] p;

  return 0;

}

运行结果为:1 2 3 4

以上就是两种常用的C++整数去重方法,根据实际需求选择适合自己的方法实现即可。

  
  

评论区

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