SHARE
TWEET

Untitled

a guest Oct 22nd, 2019 72 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. template<class T> class Set {
  2.     list<T> elems;
  3. public:
  4.     Set() {}
  5.     Set(T val)
  6.     {
  7.         elems = list<T>();
  8.         elems.push_back(val);
  9.     }
  10.     Set(const Set<T>& s) {
  11.         elems = list<T>(s.elems);
  12.     }
  13.     bool isEmpty() const
  14.     {
  15.         return elems.empty();
  16.     }
  17.     Set<T> Union(const Set<T>& r) const {
  18.         Set<T> res(*this);
  19.         for each(T val in r.elems) {
  20.             if (!contains(val))
  21.                 res.elems.push_front(val);
  22.         }
  23.         return res;
  24.     }
  25.     Set<T> intersection(const Set<T>& r) const {
  26.         Set<T> res;
  27.         for each (T val in elems) {
  28.             if (r.contains(val))
  29.                 res.elems.push_front(val);
  30.         }
  31.         return res;
  32.     }
  33.     Set<T> subtract(const Set<T>& r) const {
  34.         Set<T> res;
  35.         for each (T val in elems) {
  36.             if (!r.contains(val))
  37.                 res.elems.push_front(val);
  38.         }
  39.         return res;
  40.     }
  41.     bool contains(const T val) const {
  42.         for each (T val2 in elems) {
  43.             if (val == val2)
  44.                 return true;
  45.         }
  46.         return false;
  47.     }
  48.     bool contains(const Set<T> r) const {
  49.         for each(T val in r) {
  50.             if (!contains(val))
  51.                 return false;
  52.         }
  53.         return true;
  54.     }
  55.     bool insert(const T val) {
  56.         if (!contains(val)) {
  57.             elems.push_front(val);
  58.             return true;
  59.         } else {
  60.             return false;
  61.         }
  62.     }
  63.     bool erase(const T val) {
  64.         for (auto it = elems.begin(); it != elems.end(); it++) {
  65.             if (*it == val) {
  66.                 elems.erase(it);
  67.                 return true;
  68.             }
  69.         }
  70.         return false;
  71.     }
  72. };
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top