题意:
给定n个数,去重排序后输出个数和每个数
1.map实现
#pragma GCC optimize("O2")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<limits.h>
#include<ctime>
#define N 100001
typedef long long ll;
const int inf=999999999;
const int maxn=2017;
using namespace std;
inline int read()
{int f=1,x=0;char ch=getchar();while(ch>'9'|ch<'0'){if(ch=='-')f=-1;ch=getchar();}while(ch<='9'&&ch>='0'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}return f*x;
}
typedef map<int,bool> mp;
mp m;
int main()
{int n=read();for(int i=1;i<=n;i++){int k=read();m[k]=1;}cout<<m.size()<<endl;for(mp::iterator i=m.begin();i!=m.end();i++)cout<<i->first<<endl;
}
2.set实现
#pragma GCC optimize("O2")
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<limits.h>
#include<ctime>
#define N 100001
typedef long long ll;
const int inf=999999999;
const int maxn=2017;
using namespace std;
inline int read()
{int f=1,x=0;char ch=getchar();while(ch>'9'|ch<'0'){if(ch=='-')f=-1;ch=getchar();}while(ch<='9'&&ch>='0'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();}return f*x;
}
set<int>s;
int main()
{int n=read();for(int i=1;i<=n;i++){int k=read();s.insert(k);}printf("%d",s.size());for(set<int>::iterator i=s.begin();i!=s.end();i++)cout<<*i<<endl;
}