======= Kolekcje STL ======= ===== Klasa Wyraz ===== Zaimplementuj klasę ''**Wyraz**'' służącą do obsługi łańcuchów znaków składających się wyłącznie z liter. \\ Klasa ''**Wyraz**'': * dziedziczy po klasie ''**Wektor**'' * przeciąża operator << wrzucający przechowywany wyraz do strumienia wyjściowego * przeciąża operator >> czytający ze strumienia wejściowego dokładnie jeden wyraz lub zwraca pusty łańcuch jeśli nastąpił błąd odczytu (np. koniec pliku). Pamiętaj, że wyrazy mogą być oddzielone od siebie dowolną ilością znaków nie będących literami. Przy wczytywaniu napisu należy zignorowac więc wszystkie znaki aż do momentu pojawienia się litery zaczynającej wyraz. * przeciąża operator < porównujący dwa wyrazy. Przy porównywaniu małe i duże litery traktujemy równoważne, wiec wyraz "Ala", "ala" i "ALA" są identyczne. * konstruktor domyślny tworzy pusty łańcuch znakowy * konstruktor kopiujący Przykład działania: Wyraz w; while(!cin.eof()) { cin >> w; cout << w << endl; } Przydatne funkcje: * z biblioteki C ''string.h'' : ''isapha'', ''tolower'', ''toupper'', ''strcmp'' * z ''iostream.h'' : ''get(char z)'', ''put(char z)'', ''eof()'' ===== Słownik (kolekcja Map) ===== Wykorzystaj kolekcję **Map** oraz klasę **Wyraz** do stworzenia słownika zgodnie z treścią zadania z pierwszych zajęć. ===== Figury (Kolekcja Set) ===== Wykorzystaj kolekcję **Set** do przechowywania obiektów klasy **Figura** posortowanych względem pola. Nie przeciążaj operatora < dla figur lecz zdefiniuj odpowiedni **obiekt funkcyjny** do porównywania figur. ===== Iteratory i algorytmy ===== Dodaj implementację iteratora o dostępie bezpośrednim do klasy **Wektor**. Przetestuj działanie algorytmów **sort()**, **reverse()**, **fill()**, **rotate()**, **replace()**, **random_shuffle**, **min_element()** na kolekcji **Wektor**.