PO2025: 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>) i nie ma górnego ograniczenia na liczbę przechowywanych elementów.

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 269-271 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”.

Uwaga – przypominam, że 2 czerwca upływa termin oddawania rozwiązań zadań semestralnych do oceny. Osoby, które nie oddadzą swojego rozwiązania w terminie, nadal mogą i powinny wysłać je prowadzącemu zajęcia lab. do oceny, ale takie rozwiązania będą oceniane niżej, a w przypadku znaczącego opóźnienia może zdarzyć się, że prowadzący nie zdąży ich ocenić przed ostatnimi zajęciami.

Możliwość komentowania jest wyłączona.