Răspuns :
►Program C++
#include <iostream>
#include <set>
class Multime {
public:
std::set<int> e;
void citire_elemente() {
int nr, temp;
std::cout << "Introduceti numar elemente : ";
std::cin >> nr;
std::cout << "Introduceti elementele : ";
for (auto index = 0; index < nr; index++) {
std::cin >> temp;
e.insert(temp);
}
}
const void afisare_elemente() {
std::cout << std::endl;
for (auto it = e.begin(); it != e.end(); ++it)
std::cout << *it << " ";
}
};
Multime operator+(const Multime& a, const Multime& b) {
Multime tmp;
for (auto it = a.e.begin(); it != a.e.end(); ++it)
tmp.e.insert(*it);
for (auto it = b.e.begin(); it != b.e.end(); ++it)
tmp.e.insert(*it);
return tmp;
}
Multime operator-(const Multime& a, const Multime& b) {
Multime tmp;
for (auto it = a.e.begin(); it != a.e.end(); ++it)
if (b.e.find(*it) == b.e.end())
tmp.e.insert(*it);
return tmp;
}
Multime operator*(const Multime& a, const Multime& b) {
Multime tmp;
for (auto it = a.e.begin(); it != a.e.end(); ++it)
if (b.e.find(*it) != b.e.end())
tmp.e.insert(*it);
return tmp;
}
int main() {
Multime a, b, c, d, e;
a.citire_elemente();
b.citire_elemente();
c = a + b;
d = a - b;
e = a * b;
c.afisare_elemente();
d.afisare_elemente();
e.afisare_elemente();
}
► Explicatie :
Al folosit container set din standard template library. Acest container retine elementele in ordine, are o performanta buna la cautare si nu admite dubluri, fiind astfel un container ideal pentru problema data.
► Test
Vezi imaginea atasata.
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Ne bucurăm dacă informațiile oferite v-au fost de folos. Pentru întrebări sau asistență suplimentară, nu ezitați să ne contactați. Revenirea dumneavoastră ne onorează – adăugați-ne la favorite pentru a fi mereu la curent!