======Biblioteka standardowa======
To laboratorium jest opcjonalne i zawiera informacje mające na celu poszerzenie wiedzy o języku C%%++%%.
Z racji, że nie jest to "regularne" laboratorium, nie obowiązuje ono do kolokwium, a za rozwiązanie zadań nie będą przyznawane plusy/punkty. Oczywiście w przypadku jakichkolwiek pytań czy wątpliwości zapraszam do zadawania pytań / pisania maili / przychodzenia na konsultacje! Udzielę wszelkich wyjaśnień :-)
===== Zasobniki =====
Biblioteka standardowa wzorców (STL) zawiera w szczególności sporą liczbę klas reprezentujących struktury danych. Struktury takie służą do przechowywania, przeglądania manipulowania danymi różnych typów. Jak to możliwe, że jedna klasa jest w stanie przechowywać elementy dowolnych typów, łącznie z tymi zdefiniowanymi przez programistę?
Biblioteka standardowa używa specjalnego mechanizmu wzorców, który umożliwia pisanie kogu abstrahującego od konkretnych typów (o wzorcach więcej w następnym semestrze). Aby móc korzystać z klas napisanych jako wzorcowe, należy zawsze podczas tworzenia obiektu podać typ konkretny jaki dany obiekt będzie przechowywał:
//aby stworzyc listę integerów
list listaIntegerow;
//aby stworzyc stos macierzy
stack stosMacierzy;
//etc.
====Zasobniki Sekwencyjne====
^Plik nagłówkowy^Opis^
||Inaczej dynamiczna tablica. Umożliwia szybkie wstawianie i usunięcia na końcu zasobnika. Gwarantuje bezpośredni dostęp do dowolnego elementu.|
||Podobnie jak //vector// tylko dla wartości bitowych (mogących przyjąć wartość 0 lub 1). Optymalizacja pod względem pamięciowym.|
||Szybkie wstawianie i usuwanie na początku i końcu.Bezpośredni dostęp d dowolnego elementu.|
||Podwójnie wiązana lista. Szybkie wstawianie i usuwanie w dowolnym miejscu|
====Zasobniki skojarzeniowe====
^Plik nagłówkowy^Opis^
||Zawiera dwie klasy: //set// - szybki przegląd, duplikaty zabronione oraz //multiset// - analogicznie, ale duplikaty mogą występować.|
|