#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<vector>
#include<set>
using namespace std;
set<int> s; //左小右大存放元素
int main()
{
//插入元素
s.insert(1);
s.insert(3);
s.insert(5);
//查找元素
set<int>::iterator ite;
ite=s.find(1);
if(ite==s.end()) puts("not find");
else puts("find");
ite=s.find(2);
if(ite==s.end()) puts("not find");
else puts("find");
//删除元素
s.erase(3);
//其他的查找元素的方法
if(s.count(3) != 0) puts("find");
else puts("not find");
//遍历所有元素
for(ite = s.begin(); ite != s.end(); ite++)
{
cout<<*ite<<endl;
}
return 0;
}
更新排序
#include<iostream>
#include<cstdio>
#include<set>
using namespace std;
struct Node
{
int val,cou;
Node(int val,int cou):val(val), cou(cou)
{
}
/*
bool operator < (const Node &a) const //重载来进行排序
{
return (cou!=a.cou)?cou>a.cou : val<a.val; //小升 大降
} */
};
bool operator < (Node a, Node b) //重载来进行排序 和优先队列一样
{
return (a.cou!=b.cou)?a.cou>b.cou : a.val<b.val; //小升 大降
}
set<Node> sst;
set<Node>::iterator ite;
int main()
{
Node n1=Node(10,11);
sst.insert(n1);
n1= Node(99,11);
sst.insert(n1);
n1= Node(44,44);
sst.insert(n1);
for(ite=sst.begin(); ite!=sst.end(); ite++)
{
cout<<ite->val<<" "<<ite->cou<<endl;
}
return 0;
}