vector
std::vector<int> values = {1, 2, 3};
values.push_back(4);
mappe
std::map<std::string, int> scores;
scores["samir"] = 10;
algoritmi
std::sort(values.begin(), values.end());
ranges
c++20 introduce ranges per pipeline più pulite.
panoramica
In questo capitolo su stl e algoritmi, container, algoritmi e pattern per codice efficace. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.
Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).
badge: stl toolkit
obiettivi
- capire e applicare vector in uno scenario reale
- capire e applicare mappe in uno scenario reale
- capire e applicare algoritmi in uno scenario reale
- capire e applicare ranges in uno scenario reale
scheda rapida
#include <iostream>
#include <vector>
int main() {
std::vector<int> dati{1, 2, 3};
for (auto &v : dati) {
v *= 2;
}
for (const auto &v : dati) {
std::cout << v << " ";
}
std::cout << "\n";
return 0;
}
Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.
tips
- compila con warning elevati
- preferisci RAII
- usa const ovunque possibile
- usa vector per sequenze
- preferisci algoritmi a loop manuali
- usa reserve
tip: Se esiste un algoritmo STL, usalo: è testato e ottimizzato.
mini progetto
Analizza dataset con vector e map.
- carica dati in vector
- ordina
- calcola frequenze con map
- stampa top
output atteso: uno script o query ripetibile con risultati verificabili.
checklist
- ho eseguito gli snippet e controllato l'output
- ho annotato almeno 2 trade-off
- ho completato il mini progetto
- ho salvato un riepilogo personale