zoukankan      html  css  js  c++  java
  • Hrbust-1287-数字去重和排序II(set集合容器应用)

    数字去重和排序II
    Time Limit: 4000 MS Memory Limit: 65536 K
    Total Submit: 1098(320 users) Total Accepted: 431(281 users) Rating: Special Judge: No
    Description
    用计算机随机生成了N个0到1000000000(包含0和1000000000)之间的随机整数(N≤5000000),对于其中重复的数字,只保留一个,把其余相同的数去掉。然后再把这些数从小到大排序。
    请你完成“去重”与“排序”的工作
    Input
    输入有2行,第1行为1个正整数,表示所生成的随机数的个数:
    N
    第2行有N个用空格隔开的正整数,为所产生的随机数。
    Output
    输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
    Sample Input
    10
    20 40 32 67 40 20 89 300 400 15
    Sample Output
    8
    15 20 32 40 67 89 300 400

    应该是用哈希拉链法来做
    这里只是作为练习set容器的使用

    STL中的set集合容器—->特点是插入容器的元素会自动排序,并且不会有重复的元素,也就是说会自动去重,传说中set容器是二分查找,不过好像实际运行时也不是那么快?

    #include<iostream>
    #include<stdio.h>
    #include<iterator>//迭代器是有头文件的
    #include<set>///已重复元素不会再次插入,并且插入元素会自动排序。神特么好用
    using namespace std;
    int main()
    {
        long long n,a,i;
        set<long long>q;
        while(scanf("%lld",&n)!=EOF)
        {
            q.clear();///清空容器
            set<long long>::iterator nano;//迭代器指针的使用,先定义是什么容器的,定义什么型的,定义名字
            for(i=1; i<=n; i++)
            {
                scanf("%lld",&a);
                q.insert(a);//装入容器
            }
            printf("%d
    ",q.size());///size返回的是一个值,目测是一个int型的值,因为%lld会输出奇怪的东西
            printf("%lld",*q.begin());///而begin和end返回的是一个地址,因此begin需要指针或者迭代器承接,或者加上*运算符再输出
    
            for(nano=++q.begin(); nano!=q.end(); nano++)///set中的地址是随输入连在一起的所以可以用自增地址来移动指针
            {
                printf(" %lld",*nano);///end()返回的是容器中最后一个值的后面那个!不是最后一个值!
            }
            printf("
    ");///注意:迭代器中的++ --自增自减符号是被重载过的,和原本意义已经不一样了。通过重载的运算符实现指针移动
        }
        return 0;
    }
    
  • 相关阅读:
    省市县 三级 四级联动Javascript JQ 插件PCASClass.js
    【转】提高PHP性能的53个技巧
    Windows下Wamp装不上Memcache扩展
    Weui 微信网站开发样式插件使用教程
    div高度自适应填充剩余部分
    Storm简介
    Spark简介
    MapReduce的输入输出
    MapReduce 2简介
    Hadoop的I/O操作
  • 原文地址:https://www.cnblogs.com/kuronekonano/p/11794347.html
Copyright © 2011-2022 走看看