To tylko jedna z 19 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Kontenery specjalne Wykład 14 06/01/17 2 Kontenery specjalne Adaptatory kontenerów – przystosowują standardowe kontenery do specjalnych celów Stosy Kolejki Kolejki priorytetowe Kontener specjalny bitset Jest polem bitowym o ściśle określonym, ale dowolnym rozmiarze Dla zmiennego rozmiaru przystosowana jest specjalizowana wersja wektora vector 06/01/17 3 Stosy Stos nazywany jest inaczej kolejką LIFO Pobieranie elementów następuje w kolejności odwrotnej do ich umieszczania Stos jest w szablonie klasy stack i umieszczonym w nagłówku Domyślnie zaimplementowany jako kolejka dwustronna deque UŜyta dlatego, Ŝe automatycznie zwalnia pamięć oraz nie wymaga przekopiowywania elementów przy realokacji pamięci 06/01/17 4 Interfejs stosu Funkcje składowe push() – umieszcza element na stosie top() – zwraca kolejny element stosu pop() – usuwa element ze stosu Stos moŜe być oparty na kontenerze, który udostępnia następujące metody back(), push_back(), pop_back() Przykład cpp_14.1 06/01/17 5 Kolejki Kolejka występuje równieŜ pod nazwą kolejki FIFO Pobieranie elementów z kolejki następuję zgodnie z kolejnością ich wstawiania Szablon klasy implementujący kolejkę to queue znajdujący się w nagłówku o tej samej nazwie Domyślnie kolejka implementowana jest za pomocą kolejki dwustronnej deque 06/01/17 6 Interfejs kolejki Funkcje składowe push() – umieszcza element w kolejce pop() – usuwa element z kolejki front() – zwraca kolejny element back() – zwraca ostatni element Kolejka moŜe być oparta na kontenerze, który udostępnia następujące metody back(), push_back(), front(), pop_front() Przykład cpp_14.2 06/01/17 7 Kolejki priorytetowe Szablon klasy priority_queue implementuje kolejkę priorytetową Elementy kolejki priorytetowej sortowane są zgodnie z kryterium sortowania (domyślenie less) Dlatego kolejny element w kolejce ma największą wartość Domyślnym kontenerem do przechowywania kolejek priorytetowych jest wektor 06/01/17 8 Interfejs kolejki priorytetowej Funkcje składowe push() – umieszcza element w kolejce pop() – usuwa element z kolejki top() – zwraca kolejny element Kolejka priorytetowa moŜe być oparta na kontenerze, który udostępnia iteratory dostępu swobodnego oraz następujące metody push_back(), front(), pop_front() Przykład cpp_14.3 06/01/17 9 Kontener bitset Kontenery bitset są tablicami o ustalonym rozmiarze, zawierającymi bity lub wartości logiczne Są przeznaczone do zarządzania znacznikami Posiada zalety w stosunku do przechowywanie
(…)
…
Wszystkie typy oraz funkcje dotyczące łańcuchów znakowych
zdefiniowano w pliku nagłówkowym <string>
Łańcuchy zdefiniowane są w szablonie basic_string
STL definiuje dodatkowo specjalizowane wersje string oraz
wstring
typedef basic_string<char> string;
typedef basic_string<wchar_t> wstring;
Łańcuchy mają duŜe moŜliwości, ale niestety nie obsługują
pewnych operacji
WyraŜeń regularnych
Przetwarzanie tekstu…
…<<= - przesuwa w lewo, zwraca zmodyfikowany zestaw bitów
c.operator>>= - przesuwa w prawo, zwraca zmodyfikowany zestaw bitów
Zdefiniowane są równieŜ powyŜsze operatory bez =
c.operator[] – zwracający referencję do bitu w niestałego kontenerze lub
wartość logiczną
06/01/17
11
Konwersja typów
to_ulong() – zwraca wartość unsigned long
reprezentowana przez bity
to_string() – zwraca string reprezentujący…
... zobacz całą notatkę
Komentarze użytkowników (0)