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 pozitiax
din multisetFind(x)
– returnează valoarea de pe pozitiax
din multiset
De asemenea, trebuie definit si constructorul pentru un număr naturaln
dat.
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
x
din multiset reprezinta alx
-lea cel mai mic număr inserat n
este 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
.