unique 去重
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unique 去重相关的知识,希望对你有一定的参考价值。
- sort:可以将序列排序。
- unique:可以将序列中所有相邻的重复元素删除(只保留一个)。
此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素覆盖了。最后会返回不重复序列的后一个位置。
https://www.acwing.com/problem/content/427/
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 110;
int n;
int q[N];
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i ++ ) scanf("%d", &q[i]);
sort(q, q + n);
int k = unique(q, q + n) - q;//两个指针相减,会返回两个指针之间的元素个数。
//假设一共有k个不同元素,那么unique函数会返回q[k]的指针,因此减去q这个指针之后,就会得到k了。
printf("%d\\n", k);
for (int i = 0; i < k; i ++ ) printf("%d ", q[i]);
return 0;
}
以上是关于unique 去重的主要内容,如果未能解决你的问题,请参考以下文章