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 266-268 wykładu 12 oraz pełny kod tej klasy na stronie www (w sekcji: Program #11):
https://ktrojanowski.blog.uksw.edu.pl/programowanie-obiektowe/kody-programow-po/
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.
Przetestowany, działający program (tylko plik z kodem źródłowym) uploaduj do https://e.uksw.edu.pl jako rozwiązanie zadania „Wejściówka” w sekcji „Temat 14”.