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 lekcyjnych
Wycena 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 live online. Warsztaty z trenerem.

Zapytaj o termin i cenę
Terminy szkoleń otwartych

Brak terminu?

Zgłoś zainteresowanie szkoleniem