STL e Algoritmi
Padroneggia la Standard Template Library — contenitori, iteratori, algoritmi, range e programmazione funzionale.
Contenitori
Contenitori sequenziali: vector, deque, list, array
Esplora i contenitori sequenziali della STL — vector, deque, list, forward_list e array. Scopri i compromessi prestazionali, i layout di memoria e le regole di invalidazione degli iteratori.
Contenitori associativi: map, set, unordered_map
Scopri i contenitori associativi ordinati e non ordinati — map, set e le loro varianti multi- e unordered. Comprendi quando scegliere alberi vs tabelle hash.
Adattatori di contenitori e contenitori speciali
Scopri stack, queue, priority_queue e i moderni tipi vocabolario come span, string_view e optional. Comprendi quando gli adattatori semplificano il tuo codice.
Iteratori e Algoritmi
Iteratori: il collante della STL
Comprendi le categorie di iteratori, dagli iteratori di input a quelli contigui. Scopri l'aritmetica degli iteratori, la convenzione begin/end e come gli iteratori connettono i contenitori agli algoritmi.
Algoritmi STL: la potenza di <algorithm>
Padroneggia gli algoritmi STL più importanti — dalla ricerca e l'ordinamento alla trasformazione e all'accumulazione. Scopri come gli algoritmi si compongono con gli iteratori per un codice espressivo ed efficiente.
Lambda e programmazione funzionale
Padroneggia le lambda in C++ — liste di cattura, lambda mutabili, lambda generiche e il loro uso come predicati per gli algoritmi. Scopri std::function, std::invoke e il pattern IIFE.
Range e viste (C++20)
Range C++20: un nuovo paradigma
Scopri i range C++20 — una riprogettazione moderna dell'interfaccia degli algoritmi STL. Impara i concept dei range, gli algoritmi basati su range, le proiezioni e l'operatore pipe per trasformazioni dati componibili.
Viste, valutazione lazy e composizione
Padroneggia le viste C++20 — adattatori di range leggeri e lazy che si compongono con l'operatore pipe. Scopri filter, transform, take, drop, split, join, iota e come costruire potenti pipeline di dati senza allocazioni intermedie.