Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. #include <iostream>
  2. #include <list>
  3.  
  4. using namespace std;
  5.  
  6. template <typename T>
  7. class Set {
  8.  
  9. list<T> set;
  10.  
  11. public:
  12. Set() {}
  13.  
  14. Set(T t) {
  15. set.insert(t);
  16. }
  17.  
  18. ~Set() {
  19. set.clear();
  20. }
  21.  
  22. void insert(T t) {
  23. if (!search(t)) {
  24. set.push_back(t);
  25. }
  26. }
  27.  
  28. bool search(T t) {
  29. for (auto i = set.begin(); i != set.end(); ++i) {
  30. if ((*i) == t) {
  31. return true;
  32. }
  33. }
  34. return false;
  35. }
  36.  
  37. Set unite(Set s) {
  38. Set newSet;
  39. newSet.set.merge(this->set);
  40. newSet.set.merge(s.set);
  41. newSet.set.unique();
  42. return newSet;
  43. }
  44.  
  45. Set intersection(Set s) {
  46. Set newSet;
  47. for (auto i = s.set.begin(); i != s.set.end(); ++i) {
  48. if (this->search(*i)) {
  49. newSet.insert(*i);
  50. }
  51. }
  52. return newSet;
  53. }
  54.  
  55. Set difference(Set s) {
  56. Set newSet;
  57. for (auto i = set.begin(); i != set.end(); ++i) {
  58. if (!s.search(*i)) {
  59. newSet.insert(*i);
  60. }
  61. }
  62. return newSet;
  63. }
  64.  
  65. bool include(Set s) {
  66. for (auto i = s.set.begin(); i != s.set.end(); ++i) {
  67. if (!this->search(*i)) {
  68. return false;
  69. }
  70. }
  71. return true;
  72. }
  73.  
  74. void print() {
  75. for (auto i = set.begin(); i != set.end(); ++i) {
  76. cout << *i << " ";
  77. }
  78. cout << endl;
  79. }
  80.  
  81. private:
  82. };
  83.  
  84. int main() {
  85.  
  86. return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement