lezione 04

stl e algoritmi

container, algoritmi e pattern per codice efficace.

livello: intermedio durata: 25 min output: stl fluida badge: stl toolkit

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
start a brief