set的用法

Posted planche

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
    }
}

 

以上是关于set的用法的主要内容,如果未能解决你的问题,请参考以下文章

SQL Select 语句的用法

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

代码片段 - Golang 实现集合操作

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

jquery中的$的特殊用法