English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manuale di base di C++

Controllo di flusso di C++

Funzioni in C++

Array e stringhe di C++

Strutture dati di C++

Classi e oggetti di C++

Puntatori in C++

Ereditarietà in C++

Manuale di STL di C++

Manuale di riferimento di C++

Manuale di STL di C++

STL è l'acronimo di “Standard Template Library”, che in cinese si traduce in “libreria di template standard”. La STL fa parte della libreria standard di C++, non è necessario installarla separatamente.

Nei capitoli precedenti, abbiamo già studiato il concetto di template in C++. La STL (Standard Template Library) di C++ è una serie di classi di template potenti, che forniscono classi di template e funzioni universali, che possono implementare molti algoritmi e strutture dati popolari e comuni, come vettori, liste, code, stack.

C++ supporta molto bene i template (Template), STL È stato realizzato utilizzando il template per implementare tutte le strutture dati comuni e le loro algoritmi, e ha raggiunto la separazione tra strutture dati e algoritmi. Ad esempio, la base di vector è una tabella ordinata (array), list Il fondamento è una lista a doppio collegamento, la deque è una coda circolare, il set è un albero rubino, e hash_set è una tabella hash.

Il cuore della libreria di template standard C++ include i seguenti tre componenti:

ComponentiDescrizione
Contenitori (Containers)I contenitori sono usati per gestire raccolte di oggetti di un tipo specifico. Il C++ fornisce vari tipi di contenitori, come deque, list, vector, map, ecc.
Algoritmi (Algorithms)Gli algoritmi agiscono sui contenitori. Forniscono modi per eseguire varie operazioni, tra cui inizializzare, ordinare, cercare e trasformare il contenuto dei contenitori.
Iteratori (iterators)Gli iteratori vengono utilizzati per esplorare gli elementi di una raccolta di oggetti. Queste raccolte possono essere contenitori o sottoinsiemi di contenitori.

Questi tre componenti offrono una vasta gamma di funzioni predefinite, che ci aiutano a gestire compiti complessi in modo semplice.

Il seguente programma dimostra il contenitore vettore (un template standard C++), che è molto simile agli array, con la differenza che il vettore gestisce automaticamente le proprie esigenze di memoria di archiviazione quando è necessario espandere la dimensione:

#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
   // Creare un vettore per memorizzare int
   vector<int> vec; 
   int i;
 
   // Visualizzare la dimensione originale di vec
   cout << "La dimensione originale di vec = " << vec.size() << endl;
 
   // Aggiungere 6 valori al vettore
   for(i = 0; i < 6; i++){
      vec.push_back(i+1);
   }
 
   // Visualizzare la dimensione estesa di vec
   cout << "La dimensione estesa di vec = " << vec.size() << endl;
 
   // Accedere ai 5 valori nella vettore
   for(i = 0; i < 5; i++){
      cout << "vec[" << i << "] di valore = " << vec[i] << endl;
   }
 
   // Utilizzare l'iteratore 'iterator' per accedere ai valori
   vector<int>::iterator v = vec.begin();
   while( v != vec.end()) {
      cout << "Il valore di v = " << *v << endl;
      v++;
   }
 
   return 0;
}

Quando il codice sopra viene compilato ed eseguito, produrrà i seguenti risultati:

La dimensione originale di 'vec' = 0
La dimensione estesa di 'vec' = 6
 Il valore di 'vec[0]' è = 1
 Il valore di 'vec[1]' è = 2
 Il valore di vec[2] = 3
 Il valore di vec[3] = 4
 Il valore di vec[4] = 5
 Il valore di vec[5] = 6
Il valore di v = 1
Il valore di v = 2
Il valore di v = 3
Il valore di v = 4
Il valore di v = 5
Il valore di v = 6

Notare alcuni punti riguardanti le varie funzioni utilizzate nell'esempio sopra:

  • Il membro della funzione push_back() inserisce un valore alla fine del vettore, espandendo la dimensione del vettore se necessario.

  • La funzione size() mostra la dimensione del vettore.

  • La funzione begin() restituisce un iteratore che punta all'inizio del vettore.

  • La funzione end() restituisce un iteratore che punta all'ultimo elemento del vettore.