In C ++, il vettore può essere loopato utilizzando il classico per loop con il pedice (indice) tra le staffe quadrate. Può essere loopato attraverso l'utilizzo di un pertto basato su gamma. Può essere loopato tramite l'utilizzo della funzione For_each () inclusa dalla libreria dell'algoritmo.
Contenuto dell'articolo
- Looping usando il classico per loop
- Looping utilizzando la portata basata sulla gamma
- Looping usando la funzione for_each ()
- Conclusione
Looping usando il classico per loop
Sobbrotteria
Considera il seguente segmento di codice:
vettoreL'output è 'c'. Nella seconda istruzione, dopo il nome del vettore, VTR, sono le staffe quadrate. All'interno delle parentesi quadrate c'è l'indice, che è anche il sottospetto vettoriale. Il conteggio dell'indice inizia da zero. L'indice nel codice è 2, che restituisce il terzo elemento del vettore.
Looping con il pedice
Per loop con il pedice o l'iteratore, il per loop deve essere utilizzato. Si può anche usare il ciclo di while o do-while. La sintassi di un circuito per loop è:
per (inizio_state; while_condition; next/precedente)Looping Forward
Il seguente programma utilizza un per loop per loop in avanti, un vettore di caratteri (caratteri), con il pedice:
#includereL'output è:
A b c d eLa libreria vettoriale deve essere inclusa per l'utilizzo della classe vettoriale. Nella funzione principale C ++, dopo la creazione del vettore è il per loop per loop. Questo per loop può essere riassunto come segue: leggi ogni elemento del vettore che inizia dall'indice, 0; e mentre la fine del vettore non è ancora raggiunta, aumenta l'indice di 1 per leggere l'elemento successivo.
Le parentesi del per loop hanno la logica di cosa leggere in seguito, mentre il blocco del per loop fa la lettura e la stampa sul terminale (console).
In avanti e saltando
Nel loop sopra, la prossima dichiarazione tra parentesi è io++. Questo è lo stesso di:
i = i + 1Con questo, gli elementi vengono letti uno dopo l'altro nella direzione in avanti. Per leggere ogni altro elemento (saltare un elemento ogni volta), l'argomento successivo tra parentesi, deve essere
i = i + 2; che è lo stesso di I+= 2;Il seguente codice legge ogni altro personaggio:
vettoreL'output è:
A c eIn giro all'indietro
Il seguente codice utilizza un per loop per loop all'indietro, un vettore di caratteri (caratteri):
int main ()L'output è:
E d c b aIl looping inizia dall'indice più alto (4), che è dato da:
VTR.size ()-1In questo caso, la funzione del membro vettoriale, size () restituisce 5. 1 deve essere sottratto da esso per ottenere il più alto indice di 4 (il conteggio dell'indice inizia da 0). Per il backrewwards, la precedente dichiarazione tra parentesi, è ora "i-".
In giro all'indietro e saltando
Nel loop sopra, la dichiarazione precedente è io-. Questo è lo stesso di:
i = i - 1Con questo, gli elementi vengono letti uno dopo l'altro nella direzione inversa. Per leggere ogni altro elemento (saltando un elemento ogni volta) all'indietro, l'istruzione precedente deve essere
i = i - 2; che è lo stesso di I- = 2;Il seguente codice legge ogni altro personaggio, all'indietro:
vettoreL'output è:
E c aSaltare "D" e "B".
Looping usando una classe iteratore
Un vettore può essere in loop con un iteratore. Ci sono sei classi di iterator vettoriali. Solo due sono usati qui. I nomi dei due sono: iteratore e reverse_iterator. Nelle illustrazioni qui, il per loop è ancora usato come loop.
Un iteratore è un puntatore elaborato. Per ogni iteratore, c'è una classe da cui gli oggetti possono essere istanziati. L'oggetto istanziato è l'iteratore.
Looping Forward
Il seguente programma utilizza un per loop per loop in avanti, un vettore di caratteri (caratteri), di iteratore:
#includereL'output è:
A b c d eOsserva come l'oggetto iteratore, Iter è stato dichiarato. Il vettore ha la funzione membro inizio (). Questo restituisce un iteratore che indica il primo elemento del vettore. C'è un'altra funzione membro, end () per il vettore. Questo restituisce un iteratore che punta subito dopo l'ultimo elemento del vettore. L'iteratore restituito per fine () è molto compatibile per l'iteratore restituito da inizio (). In effetti, sono dello stesso tipo, iteratore.
Nelle parentesi, lo stato iniziale è:
iter = iter;I mezzi che l'operando sinistro, iter, dovrebbe iniziare la scansione da dove si sta indicando l'operando destro, ITER.
Questo per loop con iteratori può essere riassunto come segue: leggi ogni elemento del vettore che inizia da quello indicato da Iter; e mentre la fine del vettore non è ancora raggiunta, incrementare l'iteratore, ITER, per indicare l'elemento successivo per leggere l'elemento successivo.
Il corpo del per loop è:
char ch = *iter;L'asterisco in questa posizione, è un operatore indiretto. Ottiene il valore indicato, dall'iteratore
In avanti e saltando con iteratore
Nel loop sopra, l'argomento successivo è, iter++. Questo è lo stesso di:
iter = iter + 1Più uno con l'iteratore, significa puntare l'elemento successivo. Non significa, aggiungi l'intero 1, all'iteratore. Con questo, gli elementi vengono letti uno dopo l'altro nella direzione in avanti. Per leggere ogni altro elemento (saltando un elemento ogni volta), l'argomento successivo deve essere
iter = iter + 2; che è lo stesso di iter+= 2;Il seguente codice legge ogni altro personaggio:
vettoreL'output è:
A c eSaltare 'B' e 'D'.
In giro all'indietro
Il seguente codice utilizza un per loop per loop all'indietro, un vettore di caratteri (caratteri), usando iteratori:
int main ()L'output è:
E d c b aIl reverse_iterator è stato usato qui. Il vettore ha una funzione membro corrispondente, rbegin (), che restituisce un iteratore che indica l'ultimo elemento del vettore. C'è un'altra funzione membro, Rend (), che restituisce un iteratore che punta appena prima del primo elemento del vettore.
Per il loop all'indietro, la precedente dichiarazione tra parentesi, è ancora ironicamente, "iter ++". E la condizione di tempo, è ancora ironicamente<'.
In giro all'indietro e saltando
Nel loop sopra, l'istruzione precedente è, iter++. Questo è lo stesso di
iter = iter + 1Con questo, gli elementi vengono letti uno dopo l'altro nella direzione inversa. Per leggere ogni elemento dell'ordine (saltare un elemento ogni volta) all'indietro, l'istruzione precedente deve essere
iter = iter + 2; che è lo stesso di iter+= 2;Il seguente codice legge ogni altro personaggio all'indietro:
vettoreL'output è:
E c aSaltare "D" e "B".
Looping utilizzando la portata basata sulla gamma
La per stato basata sulla gamma è un'istruzione più conveniente da utilizzare per loop attraverso un elenco, come un vettore. Non è veramente usato per saltare o in giro all'indietro. La sintassi è:
per (inizio-stato-essere-opzionale per la dichiarazione-declamazione: for-range-initializer)Questa volta, ci sono due affermazioni tra parentesi e non tre. La prima affermazione è la dichiarazione di una variabile che contiene l'elemento successivo nel vettore. Questa variabile deve essere dello stesso tipo del tipo di elementi vettoriali. Il secondo argomento dopo il colon è il nome del vettore.
Il seguente codice mostra come può essere utilizzato:
vettoreL'output è:
A b c d eLooping usando la funzione for_each ()
La funzione For_each () viene utilizzata dalla libreria dell'algoritmo inclusa. La sintassi è:
modelloIl primo argomento è un iteratore che indica il primo elemento del vettore. Il secondo argomento è un iteratore che punta subito dopo l'ultimo elemento del vettore. Il terzo argomento è il nome di una funzione, il cui corpo è quello che sarebbe nel classico per loop. Questa funzione ha un parametro ed è la dichiarazione della variabile che tratterebbe il valore successivo del vettore. Deve essere dello stesso tipo di ogni elemento nel vettore. Questa funzione for_each () non è veramente utilizzata per saltare o loopi all'indietro.
Il seguente programma mostra come utilizzare la chiamata di funzione For_each () e una definizione della funzione associata:
#includereL'output è:
A b c d eConclusione
Per lottare attraverso un vettore, significa accedere a tutti gli elementi del vettore, dall'inizio alla fine o dalla fine all'inizio. È possibile accedere agli elementi per la lettura o la scrittura (cambiamento di valore) o entrambi.
In C ++, il vettore può essere eseguito attraverso, usando il classico per loop, con il pedice (indice) tra le staffe quadrate; Può essere loopato attraverso l'utilizzo di un pertto basato su gamma; Può anche essere loopato tramite l'utilizzo della funzione For_each () inclusa dalla libreria dell'algoritmo.