Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #ifndef mn
- #define mn
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- class M {
- vector<int> MN;
- public:
- M() { new vector<int>; };//пустой конструктор
- M(vector<int> a) { MN = a; };//конструтор параметрами
- M(const M &object) {};//конструктор копирования (для функций)
- ~M() { MN.clear(); };
- bool check(int a) { return find(MN.begin(), MN.end(), a)!= MN.end(); };
- void add(int a) { MN.push_back(a); };
- friend bool operator == (M &, M &);//друг-функция равенство множеств
- friend M operator || (M a, M b);//друг-функция объединение множеств
- friend ostream& operator << (ostream& s, M &x);//друг-функция потоковый вывод
- };
- ostream& operator << (ostream& s, M &x)//перегруженный вывод
- {
- for (int i = 0; i < x.MN.size();i++)
- s << x.MN[i] << " ";
- return s;
- }
- bool operator == (M &a, M &b) {//перегруженное равенство
- bool yes = false;
- if (a.MN.size() != b.MN.size())
- return false;
- for (int i = 0; i < a.MN.size(); i++) {
- if (!b.check(a.MN[i]))
- return false;
- }
- return true;
- }
- M operator || (M a,M b) {//перегруженное ИЛИ (объединение множеств)
- M dva;
- for (int i = 0; i < a.MN.size(); i++)
- dva.MN.push_back(a.MN[i]);
- for (int i = 0; i < b.MN.size(); i++) {
- if (!a.check(b.MN[i]))
- dva.MN.push_back(b.MN[i]);
- }
- return dva;
- }
- #endif mn
- #include "class.h"
- using namespace std;
- int main() {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- int a=0,b=0;
- M first;
- M second;
- cout << "Вводите значения первого множество (по окончании введите символ):";
- while (cin >> a) {
- if(!first.check(a))
- first.add(a);
- }
- cin.clear();
- cin.ignore(256, '\n');
- cout << "Вводите значения второго множество (по окончании введите символ):" << endl;
- while (cin >> b) {
- if (!second.check(b))
- second.add(b);
- }
- cout << endl << "1-ое множество: " << first << endl;
- cout << "2-ое множество: " << second << endl;
- if (first == second)
- cout << "два множества равны" << endl;
- else
- cout << "два множества не равны" << endl;
- cout << "Объединение двух множеств: " << (first || second) << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement