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
istd::multiset
- Mapy -
std::map
istd::multimap
- Kontenery asocjacyjne z haszowaniem -
std::unordered_set
istd::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
Biblioteka Ranges - C++20
- Algorytmy akceptujące zakresy
- Wartownicy (Sentinels)
- Projekcje (Projections)
- Widoki (Views)
- Generujące
- Filtrujące
- Transformujące
- Zmieniające dane
- Narzędzia dla zakresów i widoków
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ęWycena szkolenia zdalnego
Szkolenie zamknięte w siedzibie Klienta.
Szkolenie live online. Warsztaty z trenerem.
Zapytaj o termin i cenę