Definiți în C++ clasa Multiset care va implementa multiset-uri de numere naturale în care se definesc operațiile:
Insert(x)– insereazăxîn multisetErase(x)– elimină elementul de pe pozitiaxdin multisetFind(x)– returnează valoarea de pe pozitiaxdin multiset
De asemenea, trebuie definit si constructorul pentru un număr naturalndat.
Cerinţa
Definiți clasa Multiset. Aceasta va fi integrată într-un program de forma:
#include <bits/stdc++.h>
using namespace std;
// aici va aparea definitia scrisa de voi a clasei Multiset
int n, q, op, x;
int main()
{
cin >> n;
Multiset ms(n);
for (int i = 1; i <= n; ++i)
{
cin >> x;
ms.Insert(x);
}
cin >> q;
for (int i = 1; i <= q; ++i)
{
cin >> op >> x;
if (op == 1)
ms.Insert(x);
else if (op == 2)
ms.Erase(x);
else cout << ms.Find(x) << '\n';
}
return 0;
}
Restricţii şi precizări
- Numele clasei este
Multiset - Puteți defini ce variabile membre doriți, dar numai funcțiile membre descrise mai sus vor fi apelate
- Elementul de pe pozitia
xdin multiset reprezinta alx-lea cel mai mic număr inserat neste mai mic sau egal cu1.000.000- Numerele introduse in multiset sunt strict pozitive si mai mici sau egale decat
n - Mai multe informații despre multiset: http://www.cplusplus.com/reference/set/multiset/
Exemplu:
Intrare
5 1 2 3 4 5 4 1 3 2 2 2 1 3 4
Ieșire
5
Explicație
Dupa primele 3 operatii, elementele din ms sunt 3 3 4 5.