21xrx.com
2025-03-28 14:19:03 Friday
文章检索 我的文章 写文章
C++数组去重排序技巧
2023-06-29 05:51:52 深夜i     18     0
C++ 数组 去重 排序 技巧

在C++编程中,数组是一种非常常见的数据结构。但是,有时候我们需要对数组进行去重排序操作。这篇文章就介绍一些C++数组去重排序技巧。

第一种是使用STL库中的unique和sort函数。首先,使用sort函数对数组进行排序,然后使用unique函数去除重复元素。代码如下:

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
  int arr[] = 7;
  int n = sizeof(arr) / sizeof(arr[0]);
  // 排序
  sort(arr, arr + n);
  // 去重
  int* end = unique(arr, arr + n);
  for (int* i = arr; i != end; ++i) {
    cout << *i << " ";
  }
  cout << endl;
  return 0;
}

第二种是使用哈希表。首先,定义一个哈希表,遍历数组并将其加入哈希表,这样可以去重。然后,将哈希表中不同的元素存放在一个新的数组中,对这个新数组进行排序。代码如下:

#include <iostream>
#include <unordered_set>
#include <algorithm>
using namespace std;
int main()
{
  int arr[] = 4;
  int n = sizeof(arr) / sizeof(arr[0]);
  // 定义哈希表
  unordered_set<int> s;
  // 遍历数组并加入哈希表
  for (int i = 0; i < n; ++i) {
    s.insert(arr[i]);
  }
  // 新数组
  int new_arr[s.size()];
  int i = 0;
  // 将哈希表中不同的元素存放在新数组中
  for (auto& x : s) {
    new_arr[i++] = x;
  }
  // 对新数组进行排序
  sort(new_arr, new_arr + s.size());
  // 输出结果
  for (int i = 0; i < s.size(); ++i) {
    cout << new_arr[i] << " ";
  }
  cout << endl;
  return 0;
}

以上是两种常用的C++数组去重排序技巧,可以帮助你更加高效地对数组进行操作。在实际编程中,可以根据应用场景选择不同的方法。

  
  

评论区

请求出错了