multiset<int> S;
S.insert(90); // wstaw 90 do zbioru S
S.insert(90); // jeszcze raz
S.erase(90);
if (S.empty()) printf("Zbiór S jest pusty.");
Program wypisze, że zbiór jest pusty.
Dzieje się tak dlatego, iż procedura erase(key) usuwa wszystkie elementy o kluczach key. Dziwne? Wiem, bo w dokumentacji piszą co innego.
Jeśli chcesz usunąć dokładnie jeden element z multiset'a, to powinieneś zrobić to tak:
S.erase( S.find(90) );
1 komentarz:
W dokumentacji, z której korzystam jest ok :P Ale faktycznie można się nadziać :)
Prześlij komentarz