Skip to content

Librerie Standard

Non devi inventare tutto da zero. Il C++ include una collezione enorme di strumenti già pronti — funzioni matematiche, gestione dei file, algoritmi di ordinamento e molto altro.

Si chiama libreria standard (Standard Library) ed è disponibile su ogni computer con un compilatore C++. Basta includerla con #include.

La libreria indispensabile: serve per stampare a schermo e leggere da tastiera.

#include <iostream>
using namespace std;
int main() {
cout << "Ciao!" << endl; // stampa a schermo
int x;
cin >> x; // legge un valore da tastiera
cerr << "Errore!" << endl; // stampa un messaggio di errore
return 0;
}
  • cout — stampa a schermo
  • cin — legge da tastiera
  • cerr — stampa messaggi di errore (canale separato)
  • endl — va a capo

Per usare il tipo string e tutte le sue funzionalità:

#include <string>
using namespace std;
string nome = "Alice";
int lunghezza = nome.length(); // 5
string inizio = nome.substr(0, 3); // "Ali"
// Converte numero in stringa e viceversa
string s = to_string(42); // "42"
int n = stoi("123"); // 123
double d = stod("3.14"); // 3.14

Contiene funzioni matematiche avanzate (potenza, radice, arrotondamento, trigonometria):

#include <cmath>
using namespace std;
// Potenza: 2 elevato alla 10
cout << pow(2, 10) << endl; // 1024
// Radice quadrata
cout << sqrt(25) << endl; // 5
cout << sqrt(2) << endl; // 1.41421
// Valore assoluto
cout << abs(-5) << endl; // 5
cout << fabs(-3.14) << endl; // 3.14 (per numeri decimali)
// Arrotondamento
cout << floor(3.7) << endl; // 3 (arrotonda in giù)
cout << ceil(3.2) << endl; // 4 (arrotonda in su)
cout << round(3.5) << endl; // 4 (arrotonda al più vicino)
// Costante PI greco
cout << M_PI << endl; // 3.14159265...

<cstdlib> e <ctime> — Numeri Casuali e Utilità

Section titled “<cstdlib> e <ctime> — Numeri Casuali e Utilità”
#include <cstdlib>
#include <ctime>
using namespace std;
// Inizializza il generatore di numeri casuali (fallo una sola volta)
srand(time(0));
int casuale = rand() % 100; // numero casuale tra 0 e 99
int dado = rand() % 6 + 1; // numero casuale tra 1 e 6
// Conversione da stringa a numero (alternativa a stoi/stod)
int n = atoi("42"); // stringa → intero
double d = atof("3.14"); // stringa → decimale

Per controllare e trasformare singoli caratteri:

#include <cctype>
using namespace std;
cout << isupper('A') << endl; // 1 (vero): è maiuscolo?
cout << islower('a') << endl; // 1 (vero): è minuscolo?
cout << isdigit('5') << endl; // 1 (vero): è una cifra?
cout << isalpha('x') << endl; // 1 (vero): è una lettera?
cout << isspace(' ') << endl; // 1 (vero): è uno spazio?
cout << (char)tolower('A') << endl; // 'a'
cout << (char)toupper('a') << endl; // 'A'

Contiene algoritmi già implementati per lavorare con collezioni di dati:

#include <algorithm>
#include <vector>
using namespace std;
vector<int> v = {5, 2, 8, 1, 9, 3};
// Ordina dal più piccolo al più grande
sort(v.begin(), v.end());
// v è ora: {1, 2, 3, 5, 8, 9}
// Ordina dal più grande al più piccolo
sort(v.begin(), v.end(), greater<int>());
// v è ora: {9, 8, 5, 3, 2, 1}
// Trova il minimo e il massimo
cout << *min_element(v.begin(), v.end()) << endl; // 1
cout << *max_element(v.begin(), v.end()) << endl; // 9
// Cerca un elemento
auto it = find(v.begin(), v.end(), 5);
if (it != v.end()) {
cout << "Trovato!" << endl;
}
// Inverte l'ordine degli elementi
reverse(v.begin(), v.end());

Per usare array che cambiano dimensione (vedi la sezione dedicata):

#include <vector>
using namespace std;
vector<int> v = {1, 2, 3};
v.push_back(4); // aggiunge 4 alla fine
v.push_back(5);
cout << v.size() << endl; // 5

<limits> — Valori Massimi e Minimi dei Tipi

Section titled “<limits> — Valori Massimi e Minimi dei Tipi”

Per sapere i limiti di ogni tipo numerico:

#include <limits>
using namespace std;
cout << numeric_limits<int>::max() << endl; // 2147483647 (il più grande int)
cout << numeric_limits<int>::min() << endl; // -2147483648 (il più piccolo int)
cout << numeric_limits<double>::max() << endl; // ~1.8×10^308
LibreriaCosa contiene
<iostream>cout, cin, cerr, endl
<string>string, getline, stoi, stod, to_string
<cmath>sqrt, pow, abs, floor, ceil, M_PI
<algorithm>sort, find, min_element, max_element, reverse
<vector>vector
<fstream>ofstream, ifstream, fstream
<cstdlib>rand, srand, atoi, atof
<cctype>isupper, islower, isdigit, tolower, toupper
<limits>numeric_limits
<ctime>time