Scrieţi un program care citeşte de la tastatură elementele
mulţimilor A şi B şi afişează pe ecran:
a) intersecţia mulţimilor A şi B;
b) reuniunea mulţimilor A şi B;
c) diferenţa mulţimilor A şi B;
Mulţimile A şi B sunt formate din literele mari ale alfabetului latin
Răspunsuri la întrebare
#include <bits/stdc++.h>
using namespace std;
vector<string> in()
{
string line, num;
getline(cin, line);
stringstream ss(line);
vector<string> v;
while (ss >> num) {
v.push_back(num);
}
return v;
}
void intersection(vector<string> v1, vector <string> v2)
{
vector<string> v_intersection;
set_intersection(v1.begin(),v1.end(), v2.begin(), v2.end(),back_inserter(v_intersection));
for (auto i : v_intersection) cout << i << " ";
cout << endl;
}
void reunion(vector<string> v1, vector <string> v2)
{
vector<string> v_union;
set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), back_inserter(v_union));
for (auto i : v_union) cout << i << " ";
cout << endl;
}
void difference(vector<string> v1, vector <string> v2)
{
vector<string> v_difference;
set_difference(v1.begin(), v1.end(), v2.begin() ,v2.end(), back_inserter(v_difference));
for (auto i : v_difference) cout << i << " ";
cout << endl;
}
int main()
{
vector<string> v1, v2;
v1 = in();
v2 = in();
sort(v1.begin(), v1.end());
sort(v2.begin(), v2.end());
intersection(v1, v2);
reunion(v1, v2);
difference(v1, v2);
return 0;
}