C++提供了泛型算法用于方便的获取交集,并集,差集,对称集:
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
template<class T>
set<T> getIntersect(set<T>& ori1, set<T>& ori2)
{
set<T> result;
set_intersection(ori1.begin(), ori1.end(), ori2.begin(), ori2.end(), inserter(result, result.begin()));
return result;
}
template<class T>
set<T> getUnion(set<T>& ori1, set<T>& ori2)
{
set<T> result;
set_union(ori1.begin(), ori1.end(), ori2.begin(), ori2.end(), inserter(result, result.begin()));
return result;
}
template<class T>
set<T> getDiff(set<T>& ori1, set<T>& ori2)
{
set<T> result;
set_difference(ori1.begin(), ori1.end(), ori2.begin(), ori2.end(), inserter(result, result.begin()));
return result;
}
template<class T>
set<T> getSymmetricDiff(set<T>& ori1,