Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  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. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement