码迷,mamicode.com
首页 > 其他好文 > 详细

set的用法

时间:2018-08-15 22:48:33      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:turn   ret   file   const   it!   一个   str   begin   ==   

 
注意不能按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;
    }
}

 

set的用法

标签:turn   ret   file   const   it!   一个   str   begin   ==   

原文地址:https://www.cnblogs.com/planche/p/9484214.html

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