My Project
MySets.h
00001 #ifndef H_MYSET
00002 #define H_MYSET
00003 
00004 #include <iostream>
00005 #include <set>
00006 
00007 using namespace std;
00008 
00012 template < typename T >
00013 T Intersection(T C1, T C2){
00014   
00015   typename T::iterator it_set;
00016   T ret;
00017   
00018   for (it_set = C1.begin(); it_set != C1.end(); it_set++){
00019     if (find(C2.begin(), C2.end(), *it_set) != C2.end())
00020       ret.insert(ret.begin(), *it_set);
00021   }
00022   
00023   return ret;
00024 };
00025 
00029 template < typename T >
00030 T Difference(T C1, T C2){
00031   
00032   typename T::iterator it_set;
00033   T ret;
00034   
00035   for (it_set = C1.begin(); it_set != C1.end(); it_set++){
00036     if (find(C2.begin(), C2.end(), *it_set) == C2.end())
00037       ret.insert(ret.begin(), *it_set);
00038   }
00039   
00040   return ret;
00041 };
00042 
00046 template <typename T>
00047 T Union(T C1, T C2){
00048   typename T::iterator it_set;
00049   T ret;
00050   
00051   for (it_set = C1.begin(); it_set != C1.end(); it_set++){
00052     if (find(ret.begin(), ret.end(), *it_set) == ret.end())
00053       ret.insert(ret.begin(), *it_set);
00054   }
00055   
00056   for (it_set = C2.begin(); it_set != C2.end(); it_set++){
00057     if (find(ret.begin(), ret.end(), *it_set) == ret.end())
00058       ret.insert(ret.begin(), *it_set);
00059   }
00060   
00061   return ret;
00062 }
00063 #endif
 All Classes Files Functions Variables Typedefs