#include<set>
//init
set<int> st;
//func
st.insert(a);
st.begin();//第一个元素的地址
st.end();//
st.count(key)//某一个key是否出现过 0 1
st.erase(st.begin());
st.erase(st.begin(),st.end());
st.erase(key);
//集合特有的erase是按照值消除
//string特偶的是按照长度 str.erase(str.begin(),len);
st.clear();
st.size();
st.empty();
//以下两个函数专门用于有序的容器或者集合
st.lower_bound(x);// >=x的最小值所在位置
st.upper_bound(x)// >x的最小值所在位置
//如果不存在这样的值,则返回x如果存在,则应该在的下标位置
set<int> a={1,2,3,4,5};
set<int> b={3,5,6,8,9};
set<int> c;
//交集
set_intersection(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()));
//并集
set_union(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()));
//差集
// a-b
set_difference(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()));
// b-a
set_difference(b.begin(),b.end(),a.begin(),a.end(),inserter(c,c.begin()));