Linguaggio C++

Introduzione

Introduzione alla Libreria Standard del C++ (STL): funzioni, strumenti e moduli fondamentali per programmare in modo efficace.

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

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>.


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>.