Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Come imparare STL Container

Le classi container della STL rendono la programmazione produttiva , sicura e robusta . Sono array intelligenti che eseguono automaticamente l'allocazione della memoria , può ridimensionare , permette di passare le variabili per riferimento, inserire gli elementi in qualsiasi punto, tutte con efficienza ardente. Essi forniscono un buon motivo per passare da C , con le sue matrici muti in C + + . STL offre due tipi di classi contenitore : semplici e associativo , in cui un tasto viene associato ad ogni oggetto memorizzato . Cose che ti serviranno
Conoscenze di base di C + + Commercio A C + + compilatore e, preferibilmente, un ambiente di sviluppo integrato
Mostra più istruzioni
1

leggere ed eventualmente memorizzare le due categorie di classi contenitore . Li Memorizzazione mai fatto male a nessuno e sarà di beneficio per voi nel lungo periodo
semplici contenitori : . Vector <> , liste di < > , <> pila , coda di <>, deque < >
associativi Contenitori: mappa < > , set < > , multimap < > , multinsieme < >
2

Ulteriori informazioni su tutte le classi di container per essere mostrato come un semplice contenitore può essere utilizzato. Questo tutorial illustrerà i metodi di vector < > .
3

Assegnare una dimensione al vettore . È possibile assegnare dimensioni vettore mediante uno dei costruttori di overload . Inoltre , è possibile utilizzare la riserva ( ) o assegnare ( ) metodo , dopo aver dichiarato un vettore . Tutti i metodi sono riportati di seguito :
vettore arr ( 50 ) ; //specificare la capacità
vettore arr ( 50 , 17) ; //specificare le capacità e fornire tutti gli elementi di un valore di default ( 17 ) per vettore arr2 ( arr ) ; //inizializza un vettore di un altro vettore
vettore vec ;
vec.reserve ( 100); //o l'utilizzo di riserva () per allocare la memoria
4

iterare attraverso un vettore . È possibile farlo utilizzando l'indice di riferimento [ operatore ] o tramite iteratori , che sono una caratteristica speciale STL . Le loro capacità sono oltre lo scopo di questo tutorial . I seguenti frammenti di codice mostrano la dimensione ( ) , iniziano ( ) e membri di fine ( ) :
//utilizzando l'indicizzazione normale
for (int i = 0; } cout i
//utilizzando iteratori
per ( vector < > :: iterator iter = vec.begin (); iter = vec.end (); ! iter + + ) { cout
}
5

Aggiungi un elemento alla fine , rimuovere tale elemento , inserire un elemento nel mezzo e restituire la dimensione del contenitore È possibile eseguire tutte queste funzioni utilizzando il push_back ( ) , pop_back ( ) , i metodi insert ( ) e size () , rispettivamente , come mostrato di seguito : .
vec.push_back ( 35) ;
vec.pop_back ();
vec.insert (pos , 19 ) ; //pOS è la posizione
cout Pagina 6

Cancella gli elementi all'interno un intervallo, cancellare il resto degli elementi e fare in modo che il vettore è vuoto . Per queste , è possibile utilizzare le funzioni membro erase ( ) , clear () e empty () .
vec.erase ( vec.begin ( ) + 5 , vec.end ( ) - 5) ; //cancellare tutti gli elementi tranne il primo e l' ultimo 5
vec.clear ( ) ; //cancellare tutti gli elementi
se (true == vec.empty ( ) ) { ... } //controllo se vettore è vuoto
7

Scopri tutte le funzioni membro offerti in vector < > Molti sono comuni in tutto il resto delle classi contenitore : .
_Destroy ( ) , _Eq ( ) , _Lt ( ) , _Ucopy ( ) , _Ufill ( ) , assegnare ( ) , a ( ) , begin () , indietro ( ) , capacità ( ) , clear () , empty () , end () , erase ( ) , frontale ( ) , get_allocator ( ) , max_size ( ) , insert ( ) , operatore = , operatore [ ] , pop_back ( ) , push_back ( ) , rbegin ( ) , rend ( ) , riserva ( ) , ridimensionare ( ) , size () , swap ( ) , ~ vettore ( ) .
8

Assicurati di includere il file di intestazione vector.h nella parte superiore del file di origine prima di testare il codice per te stesso . ogni classe contenitore ha un proprio file di intestazione . L'elenco < > richiederà list.h , una coda < > richiederà queue.h , e così via .

 

Programmazione © www.354353.com