在c++里面有这样的数据结构,它叫set(集合),它具有和数学上集合一样的性质,运算,而且,它内部还有序。
1.set 的基本操作
#include <iostream>
#include <set>//set需要的头文件
using namespace std;
set<int>mp;//<>里面填各类数据类型,这里涉及到cpp模板技术
int main(){
int n;
cin>>n;
mp.insert(n);//插入操作
mp.erase(n)//删除n;
mp.lower_bound(n)//在mp里面找到第一个大于等于n的数字并返回其下标,如果没找到那么返回end
//同理,这里可以用mp.find();
}
2.set 的运算
set<int>s1;
set<int>s2;
set<int>ans;
//交集
set_intersection(s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(ans,ans.begin()));
//并集
set_union(s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(ans,ans.begin()));
//补集
set_difference(s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(ans,ans.begin()));