Nwlapcug.com


Come imparare contenitori STL

Le classi di contenitori di STL rendono la programmazione produttiva, sicuro e robusto. Sono matrici smart eseguire automaticamente allocazione di memoria, in grado di ridimensionare, consentono di passare le variabili di riferimento, inserire elementi in qualsiasi punto, tutti con ardente efficienza. Essi forniscono una buona ragione per passare da C con sue matrici muta a C++. STL offre due tipi di classi contenitore: semplice e associativo, dove una chiave è associata con ogni oggetto archiviato.

Istruzioni

1

Leggere e memorizzare facoltativamente le due categorie di classi contenitore. Memorizzazione di loro mai del male a nessuno e sarà di beneficio per voi nel lungo periodo.

Semplici contenitori: vector <> elenchi <>, <> di pila, coda <>, deque <>

I contenitori associativi: mappa set <>, multimap <>, <>, <> multiset

2

Informazioni su tutte le classi di contenitori di essere mostrato come un semplice contenitore può essere utilizzato. Questo tutorial illustra i metodi di vector <>.

3

Assegnare una dimensione al vettore. È possibile assegnare la dimensione del vettore utilizzando uno dei costruttori di overload. Inoltre, è possibile utilizzare il metodo Reserve () o assign () dopo che è stato dichiarato che un vettore. Di seguito sono riportati tutti i metodi

Vector arr(50) < int >; specificare la capacità

Vector < int > arr (50, 17); specificare la capacità e fornire tutti gli elementi di un valore predefinito (17)

Vector arr2(arr) < int >; inizializzare un vettore da un altro vettore

Vector vec < int >;

vec.Reserve(100); o utilizzare Reserve () per allocare memoria

4

Scorrere attraverso un vettore. È possibile farlo utilizzando l'operatore [] indice standard o attraverso gli iteratori, che sono una caratteristica speciale di STL. Loro capacità sono oltre la portata di questo tutorial. Frammenti di codice seguenti illustrano i membri size (), Begin () ed end ():

utilizzando l'indicizzazione standard

per (int i = 0; i < = VEC; i + +) {

cout <
}

utilizzo di iteratori

per (<> di vector:: iterator iter = vec.begin(); iter! = vec; iter + +) {

cout << * iter <
}

5

Aggiungere un elemento alla fine, rimuovere tale elemento, inserire un elemento in mezzo e restituire la dimensione del contenitore. È possibile eseguire tutte queste funzioni utilizzando il push_back (), pop_back (), i metodi Insert () e dimensione (), rispettivamente, come illustrato di seguito:

vec.push_back(35);

vec.pop_back();

vec.Insert (pos, 19); POS è la posizione

cout << vec << endl;

6

Cancellare gli elementi all'interno di un intervallo, cancellare il resto degli elementi e assicurarsi che il vettore è vuoto. Per questi, si utilizza il membro funzioni Erase (), Clear () ed Empty ().

vec.erase(vec.Begin() + 5, vec - 5); cancellare tutti gli elementi tranne il primo e l'ultimo 5

vec.Clear(); cancellare tutti gli elementi

Se (true = = vec.empty()) {...} / / controlla se il vettore è vuoto

7

Scopri tutte le funzioni di membro offerte nel vettore <>. Molti sono comuni in tutto il resto delle classi contenitore:

_Destroy(), _Eq(), _Lt(), _Ucopy(), _Ufill(), Assign (), at (), Begin (), indietro (), right, Clear, Empty (), end (), erase (), Front (), get_allocator, max_size (), Insert (), operatore =, operator [], pop_back (), push_back (), rbegin, rend, Reserve (), Resize, dimensione, swap, ~ vector().

8

Assicurati di che includere il file di intestazione vector.h nella parte superiore del file di origine prima di testare questo codice per te. Ogni classe del contenitore ha un proprio file di intestazione. Un elenco <> richiederà list.h, un <> di coda richiederà Queue, e così via.

Consigli & Avvertenze

  • Le classi contenitore andare mano nella mano con le funzioni di algoritmo, un'altra potente funzione di libreria di modelli Standard.