Librerie Standard
Non devi inventare tutto da zero
Section titled “Non devi inventare tutto da zero”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.
<iostream> — Input e Output
Section titled “<iostream> — Input e Output”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 schermocin— legge da tastieracerr— stampa messaggi di errore (canale separato)endl— va a capo
<string> — Testo
Section titled “<string> — Testo”Per usare il tipo string e tutte le sue funzionalità:
#include <string>using namespace std;
string nome = "Alice";int lunghezza = nome.length(); // 5string inizio = nome.substr(0, 3); // "Ali"
// Converte numero in stringa e viceversastring s = to_string(42); // "42"int n = stoi("123"); // 123double d = stod("3.14"); // 3.14<cmath> — Funzioni Matematiche
Section titled “<cmath> — Funzioni Matematiche”Contiene funzioni matematiche avanzate (potenza, radice, arrotondamento, trigonometria):
#include <cmath>using namespace std;
// Potenza: 2 elevato alla 10cout << pow(2, 10) << endl; // 1024
// Radice quadratacout << sqrt(25) << endl; // 5cout << sqrt(2) << endl; // 1.41421
// Valore assolutocout << abs(-5) << endl; // 5cout << fabs(-3.14) << endl; // 3.14 (per numeri decimali)
// Arrotondamentocout << 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 grecocout << 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 99int dado = rand() % 6 + 1; // numero casuale tra 1 e 6
// Conversione da stringa a numero (alternativa a stoi/stod)int n = atoi("42"); // stringa → interodouble d = atof("3.14"); // stringa → decimale<cctype> — Funzioni sui Caratteri
Section titled “<cctype> — Funzioni sui Caratteri”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'<algorithm> — Algoritmi Pronti
Section titled “<algorithm> — Algoritmi Pronti”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ù grandesort(v.begin(), v.end());// v è ora: {1, 2, 3, 5, 8, 9}
// Ordina dal più grande al più piccolosort(v.begin(), v.end(), greater<int>());// v è ora: {9, 8, 5, 3, 2, 1}
// Trova il minimo e il massimocout << *min_element(v.begin(), v.end()) << endl; // 1cout << *max_element(v.begin(), v.end()) << endl; // 9
// Cerca un elementoauto it = find(v.begin(), v.end(), 5);if (it != v.end()) { cout << "Trovato!" << endl;}
// Inverte l'ordine degli elementireverse(v.begin(), v.end());<vector> — Array Dinamici
Section titled “<vector> — Array Dinamici”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 finev.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^308Tabella riassuntiva
Section titled “Tabella riassuntiva”| Libreria | Cosa 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 |