Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. #pragma once
  2. #ifndef mn
  3. #define mn
  4. #include <iostream>
  5. #include <vector>
  6. #include <algorithm>
  7. using namespace std;
  8.  
  9. class M {
  10. vector<int> MN;
  11. public:
  12. M() { new vector<int>; };//пустой конструктор
  13. M(vector<int> a) { MN = a; };//конструтор параметрами
  14. M(const M &object) {};//конструктор копирования (для функций)
  15. ~M() { MN.clear(); };
  16. bool check(int a) { return find(MN.begin(), MN.end(), a)!= MN.end(); };
  17. void add(int a) { MN.push_back(a); };
  18. friend bool operator == (M &, M &);//друг-функция равенство множеств
  19. friend M operator || (M a, M b);//друг-функция объединение множеств
  20. friend ostream& operator << (ostream& s, M &x);//друг-функция потоковый вывод
  21. };
  22.  
  23. ostream& operator << (ostream& s, M &x)//перегруженный вывод
  24. {
  25. for (int i = 0; i < x.MN.size();i++)
  26. s << x.MN[i] << " ";
  27. return s;
  28. }
  29.  
  30. bool operator == (M &a, M &b) {//перегруженное равенство
  31. bool yes = false;
  32. if (a.MN.size() != b.MN.size())
  33. return false;
  34. for (int i = 0; i < a.MN.size(); i++) {
  35. if (!b.check(a.MN[i]))
  36. return false;
  37. }
  38. return true;
  39. }
  40.  
  41. M operator || (M a,M b) {//перегруженное ИЛИ (объединение множеств)
  42. M dva;
  43. for (int i = 0; i < a.MN.size(); i++)
  44. dva.MN.push_back(a.MN[i]);
  45. for (int i = 0; i < b.MN.size(); i++) {
  46. if (!a.check(b.MN[i]))
  47. dva.MN.push_back(b.MN[i]);
  48. }
  49. return dva;
  50. }
  51. #endif mn
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. #include "class.h"
  60.  
  61. using namespace std;
  62.  
  63. int main() {
  64. SetConsoleCP(1251);
  65. SetConsoleOutputCP(1251);
  66. int a=0,b=0;
  67. M first;
  68. M second;
  69. cout << "Вводите значения первого множество (по окончании введите символ):";
  70. while (cin >> a) {
  71. if(!first.check(a))
  72. first.add(a);
  73. }
  74. cin.clear();
  75. cin.ignore(256, '\n');
  76. cout << "Вводите значения второго множество (по окончании введите символ):" << endl;
  77. while (cin >> b) {
  78. if (!second.check(b))
  79. second.add(b);
  80. }
  81.  
  82. cout << endl << "1-ое множество: " << first << endl;
  83. cout << "2-ое множество: " << second << endl;
  84.  
  85. if (first == second)
  86. cout << "два множества равны" << endl;
  87. else
  88. cout << "два множества не равны" << endl;
  89. cout << "Объединение двух множеств: " << (first || second) << endl;
  90. system("pause");
  91. return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement