zoukankan      html  css  js  c++  java
  • set的用法

     
    注意不能按id去重!只能id,val同时相同时才能去重!!
    struct node
    {
    int id, val;
    bool operator<(const node &x) const
    {
    if (x.id == id&&x.val==val)
    return 0;
    if (x.val == val)
    return id < x.id;
    return val < x.val;
    }
    };
    s.insert(node{10, 200});
    s.insert(node{20, 200});
    s.insert(node{30, 200});
    s.insert(node{20, 200});
    s.insert(node{10, 100});
    
    for (set<node>::iterator it = s.begin(); it != s.end(); it++)
    {
    cout << (*it).id << " " << (*it).val << endl;
    }
    struct node
    {
        int id, val;
        bool operator<(const node &x) const
        {
            if (x.id == id && x.val == val)
                return 0;
            if (x.val == val)
                return id > x.id;
            return val > x.val;
        }
    };
    int n, m, k, a, b;
    arr c;
    set<node> s;
    bool comp(const node &x,const node &y){
        return x.val > y.val;
    }
    int main()
    {
        // file("test");
        // sdf(n),sdf(m),sdf(k);
        // For(i, 1, n) sdf(c[i]);
        // sdf(a);
        // For(i,1,a)
        s.insert(node{10, 200});
        s.insert(node{20, 400});
        s.insert(node{30, 300});
        s.insert(node{20, 200});
        s.insert(node{10, 100});
        // s.clear();
        cout << s.size() << endl;
        set<node>::iterator it;
        it = upper_bound(s.begin(),s.end(),node{50, 200},comp);//从大到小排序的话,找第一个小于200的node
        if(it!=s.end())
            s.erase(it);
        cout<< s.count(node{20, 400}) << endl;
    
        for (it = s.begin(); it != s.end(); it++)
        {
            cout << (*it).id << " " << (*it).val << endl;
        }
    }
    typedef multiset<node>::iterator It;
    pair<It,It>ret=s.equal_range(x);
    cout<<*ret.first<<" "<<*ret.second;
  • 相关阅读:
    NOI2005 聪聪和可可
    CodeVS 1344 线型网络
    BZOJ 2466: [中山市选2009]树
    BZOJ 3827: [Poi2014]Around the world
    BZOJ 1109: [POI2007]堆积木Klo
    BZOJ 2124: 等差子序列
    BZOJ 4544: 椭圆上的整点
    BZOJ 2342: [Shoi2011]双倍回文
    BZOJ 2084: [Poi2010]Antisymmetry
    BZOJ 3111: [Zjoi2013]蚂蚁寻路
  • 原文地址:https://www.cnblogs.com/planche/p/9484214.html
Copyright © 2011-2022 走看看