PO2022: Wejściówka na Lab.14

Napisz klasę reprezentującą kontener typu zbiór z powtórzeniami. Jest to struktura danych, w której nowe dane dopisywane są zawsze, nawet jeżeli wielokrotnie dodawana jest ta sama wartość, a porządek danych nie jest ustalony i może być dowolny. Kontener przechowuje obiekty typu string (dodaj w nagłówku pliku instrukcję #include <string>).

Do przechowywania danych w kontenerze wykorzystaj dowolną, najkorzystniejszą twoim zdaniem strukturę danych (np. dynamicznie zaalokowana tablica, albo lista dynamiczna..). Zobacz, jak został zaimplementowany kontener typu Tablica na slajdach 261-263 wykładu 13 oraz pełny kod tej klasy na stronie www (w sekcji: Program #11):
https://troja.uksw.edu.pl/programowanie-obiektowe/kody-programow/
i ewentualnie skorzystaj z tych składowych, które uznasz za użyteczne.

Kontener powinien udostępniać metody: insert i remove, które odpowiednio dodają lub usuwają dane do lub z kontenera. Wartość podana w argumencie wywołania metody remove identyfikuje dane do usunięcia. W przypadku podania wartości, która występuje w kontenerze wielokrotnie, za jednym wywołaniem remove usuwane są od razu wszystkie duplikaty. Natomiast jeżeli użytkownik zażąda usunięcia wartości, która nie jest przechowywana w kontenerze, nie dzieje się nic. Dodaj też do kontenera metodę exists, która zwraca true, jeżeli wartość, podana w argumencie wywołania, występuje w kontenerze w przynajmniej jednym egzemplarzu, natomiast false – w przeciwnym przypadku.

Zademonstruj poprawne działanie kontenera, dodając do niego oraz odejmując kilka elementów i sprawdzając ich obecność w kontenerze, oraz na koniec usuwając cały, niepusty kontener.