zoukankan      html  css  js  c++  java
  • HDOJ_2094 寻找冠军 set的简单应用

    这个题原来没有思路,感觉较难,想着得建树,后来在讨论区看到神贴,用set水过,看了一下,才想到方法,其实这个不用set的巧妙之处是 运用了set 相同的元素只存储一个的特性,建立两个容器,好啦,大家一看代码便知思路,我暴怒废话啦

    #include<iostream>
    #include<set>
    #include<string>
    #include<algorithm> //这个不能少,用到比较时旧的添上
    using namespace std;
    int main()
    {
        int n;
        string str1,str2;
        set<string>a,b;
        while(scanf("%d",&n),n)
        {
            while(n--)
            {
                cin>>str1>>str2;
                a.insert(str1);
                b.insert(str2);
            }
            set<string>::iterator i;
            for(i=b.begin();i!=b.end();i++)
            {
                if(find(a.begin(),a.end(),*i)!=a.end())
                    a.erase(*find(a.begin(),a.end(),*i));
            }
            if(a.size()==1)
                cout<<"Yes"<<endl;
            else
                cout<<"No"<<endl;
            a.clear();
            b.clear();
        }
        return 0;
    }
            


    set的一下简单操作:

    begin() 返回指向第一个元素的迭代器

      clear() 清除所有元素

      count() 返回某个值元素的个数

      empty() 如果集合为空,返回true(真)

      end() 返回指向最后一个元素之后的迭代器,不是最后一个元素

          equal_range() 返回集合中与给定值相等的上下限的两个迭代器

      erase() 删除集合中的元素

      find() 返回一个指向被查找到元素的迭代器

      get_allocator() 返回集合的分配器

      insert() 在集合中插入元素

      lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器

      key_comp() 返回一个用于元素间值比较的函数

      max_size() 返回集合能容纳的元素的最大限值

      rbegin() 返回指向集合中最后一个元素的反向迭代器

      rend() 返回指向集合中第一个元素的反向迭代器

      size() 集合中元素的数目

        swap() 交换两个集合变量
         upper_bound() 返回大于某个值元素的迭代器

      value_comp() 返回一个用于比较元素间的值的函数

    StL用多了,大家也知道,其实常用的操作没几个,想本题里面的find就是常用之一,记住即可!

  • 相关阅读:
    Nginx和php是怎么通信的?
    浏览器输入URL到响应页面的全过程
    一个简单清晰的Redis操作类-php
    两种简单的方法Docker构建LANMP
    Docker镜像的构成__Dockerfile
    进入Docker容器
    Docker镜像的构成__docker commit
    Docker的安装
    PHP基于TP5使用Websocket框架之GatewayWorker开发电商平台买家与卖家实时通讯
    OC @property @synthesize和id
  • 原文地址:https://www.cnblogs.com/zibuyu/p/2635863.html
Copyright © 2011-2022 走看看