La Libreria Standard del C++ (spesso chiamata STL – Standard Template Library) è un insieme di funzioni, strutture dati e strumenti già pronti all uso che permettono di semplificare moltissimo la programmazione. Questa libreria fa parte del linguaggio e non richiede installazioni aggiuntive.
Utilizzare correttamente la STL aiuta a scrivere programmi più veloci da creare, più sicuri e più chiari.
1️⃣ Cosa contiene la Libreria Standard?
La libreria standard è suddivisa in molti moduli. I più importanti sono:
- <iostream> → input e output (cout, cin)
- <cmath> → funzioni matematiche (sqrt, pow, sin)
- <cstdlib> → funzioni generiche (rand, malloc, abs)
- <ctime> → gestione del tempo (time, clock)
- <string> → gestione delle stringhe C++
- <vector> → vettori dinamici
- <algorithm> → algoritmi utili (sort, max, min, find)
- <fstream> → lettura e scrittura di file
#include per importare ciò che serve.
2️⃣ Come si usa una libreria standard?
Per usare una parte della libreria basta includere l header corrispondente:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
cout << "Ciao STL!";
}
Ogni header aggiunge funzioni e strumenti specifici. Importare solo ciò che serve mantiene il programma più chiaro.
3️⃣ Esempi pratici di funzioni utili della STL
A) Input/output: <iostream>
cout << "Inserisci un numero: ";
cin >> x;
B) Matematica: <cmath>
double r = sqrt(25); // 5
double p = pow(2, 8); // 256
C) Numeri casuali: <cstdlib> e <ctime>
srand(time(NULL));
int n = 1 + rand() % 10; // numero tra 1 e 10
D) Vettori e algoritmo sort
vector v = {4, 1, 7, 2};
sort(v.begin(), v.end()); // ordina il vettore
Il vantaggio principale della STL è che evita di reinventare strumenti già ottimizzati e testati.
4️⃣ Perché usare la Libreria Standard?
- ✔ Code più breve e leggibile
- ✔ Meno errori
- ✔ Funzioni già ottimizzate dagli sviluppatori C++
- ✔ Risparmio di tempo nella scrittura dei programmi
- ✔ Portabilità su qualunque compilatore
Imparare la STL significa iniziare a programmare “davvero” in C++, sfruttando al massimo il linguaggio.
5️⃣ Tabella delle principali librerie standard del C++
La seguente tabella riassume le librerie più usate della STL, con le loro funzioni principali e l utilizzo tipico.
| Libreria | Funzioni / Strumenti Principali | Utilizzo Tipico |
|---|---|---|
<iostream> |
cout, cin, endl, getline() | Input/Output |
<string> |
.length(), .substr(), .find(), .erase(), stoi(), stod() | Gestione delle stringhe |
<cmath> |
sqrt(), pow(), abs(), sin(), cos(), log() | Funzioni matematiche |
<cstdlib> |
rand(), srand(), abs(), malloc(), free() | Utility generiche, numeri casuali |
<ctime> |
time(), clock(), difftime() | Gestione del tempo, inizializzazione rand |
<vector> |
push_back(), pop_back(), size(), empty(), at() | Vettori dinamici |
<algorithm> |
sort(), reverse(), find(), count(), max(), min() | Algoritmi di ricerca e ordinamento |
<fstream> |
ifstream, ofstream, is_open() | Gestione file (lettura/scrittura) |
<iomanip> |
setw(), setprecision(), fixed, scientific | Formattazione dell output |
<cctype> |
isdigit(), isalpha(), toupper(), tolower() | Analisi e trasformazione caratteri |
<utility> |
pair, make_pair(), swap() | Strumenti generici |
<queue>, <stack> |
push(), pop(), front(), top() | Strutture dati FIFO/LIFO |
LABORATORIO
Prime operazioni con la Libreria Standard
In questo laboratorio userai alcuni dei moduli principali della STL: <iostream>, <cmath>, <vector> e <algorithm>.
- Ambiente di sviluppo C++
- Libreria standard del C++
- Header <iostream>, <vector>, <algorithm>, <cmath>
1 Input/Output
Chiedi all utente due numeri e stampane la somma.
#include <iostream>
using namespace std;
int a, b;
cin >> a >> b;
cout << "Somma: " << a + b;
2 Uso di cmath
Calcola la radice quadrata di un numero inserito dall utente.
#include <cmath>
double x;
cin >> x;
cout << sqrt(x);
3 Vettori e ordinamento
Crea un vettore di 5 numeri, inseriti dall utente, e ordinateli con sort().
#include <vector>
#include <algorithm>
vector v(5);
for(int i = 0; i < 5; i++)
cin >> v[i];
sort(v.begin(), v.end());
for(int x : v)
cout << x << " ";
4 Esercizi aggiuntivi
- Leggi un numero e calcola potenza e radice.
- Riempire un vettore di 10 numeri e trovare il massimo usando
*max_element(). - Usare
rand()per generare 10 numeri casuali e ordinarli. - Leggere e stampare una riga di testo usando <string>.