码迷,mamicode.com
首页 > 编程语言 > 详细

去重+排序板子(set+map)

时间:2017-09-05 09:56:17      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:set   fine   cti   begin   line   def   实现   i++   time   

题意:

给定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;
}

 

去重+排序板子(set+map)

标签:set   fine   cti   begin   line   def   实现   i++   time   

原文地址:http://www.cnblogs.com/tsunderehome/p/7476710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!