STL - efektywne wykorzystanie biblioteki standardowej C++
Cele szkolenia
Uczestnicy szkolenia nauczą się:
- wybierać optymalny kontener w zależności od kontekstu
- używać dostępnych iteratorów i pisać własne iteratory
- optymalnie dobierać algorytm do przetwarzania danych w aplikacji
- korzystać z bogatej bilioteki algorytmów standardowych (również w wersji współbieżnej - Parallel STL)
Plan szkolenia
Wprowadzenie do STL
- Składniki biblioteki STL
- Kontenery, iteratory i algorytmy - omówienie
- Semantyka wartości i semantyka przenoszenia w kontenerach
- Operacje wstawiania w kontenerach standardowych (C++11)
- emplace(), emplace_back()
- Obsługa błędów i wyjątków wewnątrz biblioteki STL
Kontenery sekwencyjne
- Wektory - klasa std::vector
- Kolejki o dwóch końcach - std::deque
- Listy - std::list
Kontenery asocjacyjne
- Zbiory - std::set i std::multiset
- Mapy - std::map i std::multimap
- Kontenery asocjacyjne z haszowaniem - std::unordered_set i std::unordered_map
- Obliczanie wartości skrótów hash dla obiektów
Adaptatory kontenerów
- Stos - std::stack
- Kolejka - std::queue
- Kolejka priorytetowa - std::priority_queue
- Przykłady zastosowań adaptorów
Iteratory
- Kategorie iteratorów STL
- Funkcje pomocnicze dla iteratorów
- Adaptatory iteratorów
- Iteratory wstawiające
- Iteratory strumieniowe
- Iteratory odwrotne
- Iteratory przenoszące
- Pisanie własnych iteratorów
Algorytmy standardowe
- Zakresy w algorytmach i kontenerach
- Argumenty algorytmów - zakresy, iteratory, predykaty i komparatory
Obiekty funkcyjne w algorytmach STL
- Obiekty funkcyjne definiowane przez użytkownika
- Wyrażenia lambda i obiekty domknięć
- Predefiniowane obiekty funkcyjne
- Adaptory funkcji, metod oraz obiektów funkcyjnych
- Lambdy wyższego rzędu
Algorytmy STL
- Algorytm for_each()
- Algorytmy niemodyfikujące - zliczanie, wartości minimalna i maksymalna, wyszukiwanie elementów
- Algorytmy modyfikujące - kopiowanie, przekształcanie i zastępowanie elementów
- Algorytmy usuwające
- Algorytmy mutujące
- Algorytmy sortujące
- Algorytmy przeznaczone dla zakresów posortowanych
- Algorytmy numeryczne
Rozszerzenie standardu C++
- Biblioteka Boost.Container
- Biblioteka Boost.Iterator
- Biblioteka Ranges (C++20)
Wymagania
Opanowane podstawy programowania w języku C++
Czas trwania
3 dni po 8 godzin lekcyjnychWycena szkolenia zamkniętego
Szkolenie zamknięte w siedzibie Klienta.
Klient zapewnia salę szkoleniową i sprzęt.
Zapytaj o termin i cenę