21xrx.com
2024-09-19 23:57:52 Thursday
登录
文章检索 我的文章 写文章
C++数组去重排序技巧
2023-06-29 05:51:52 深夜i     --     --
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++数组去重排序技巧,可以帮助你更加高效地对数组进行操作。在实际编程中,可以根据应用场景选择不同的方法。

  
  

评论区

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