Con i primi tre metodi sopra menzionati, le dichiarazioni devono essere scritte per eseguire effettivamente la somma. Con il metodo Accumulate, la funzione Accumulate () fa la somma senza ulteriori dichiarazioni di somma. Questi quattro metodi sono illustrati in questo articolo. Al fine di codificare un vettore in un programma C ++, la libreria vettoriale è inclusa nel programma.
Contenuto dell'articolo
- Aggiunta di elementi vettoriali usando il per loop
- Aggiunta di elementi vettoriali utilizzando il per stato basato sulla gamma
- Aggiunta di elementi vettoriali usando la funzione for_each ()
- Aggiunta di elementi vettoriali utilizzando la funzione Accumulate ()
- Conclusione
Aggiunta di elementi vettoriali usando il per loop
Considera il vettore:
vettoreAl fine di aggiungere tutti questi elementi dall'inizio, una variabile di somma, inizialmente con il valore zero, deve essere dichiarata come segue:
Float Sum = 0.0;Dall'indice zero all'ultimo indice, ogni valore viene aggiunto per somma in un ad anello. Il seguente programma illustra questo:
#includereL'output è 16.5 come previsto. Si noti che è stata inclusa la libreria vettoriale e lo spazio dei nomi standard è stato utilizzato.
Aggiunta di elementi vettoriali utilizzando il per stato basato sulla gamma
Considera il seguente vettore di numeri interi:
vettoreAl fine di aggiungere tutti questi elementi dall'inizio, una variabile di somma, inizialmente con il valore zero, deve essere dichiarata come segue:
int sum = 0;Dal primo elemento del vettore all'ultimo elemento, ogni valore viene aggiunto per somma nel per loop basato sull'intervallo. L'istruzione per compound basata su gamma è simile all'istruzione per il completamento sopra. Tuttavia, i parametri del per loop basato su portata sono diversi da quelli del classico per loop (sopra).
Esistono due parametri nelle parentesi del per loop basato su intervallo: la prima è una dichiarazione variabile che si riferisce all'elemento successivo nel vettore, a partire dal primo. Sostituisce vtr [i], del classico per loop sopra. Il secondo parametro è il nome del vettore. La sintassi dell'istruzione per il completamento basato su intervallo è
per (inizio-stato-essere-opzionale per la dichiarazione-declamazione: for-range-initializer)Il per loop basato sulla gamma è una variante del classico per loop; È più conveniente da usare nell'iterazione tra gli elenchi. La dichiarazione variabile è davanti al colon e il nome del vettore è dopo il colon. Il seguente programma mostra la dichiarazione per compound basata su gamma in azione:
#includereL'output è 15. Nota: il nome della variabile, var, è la scelta del programmatore. In quella posizione, si riferisce all'elemento successivo (valore) nel vettore.
Aggiunta di elementi vettoriali usando la funzione for_each ()
La funzione For_each () è nella libreria dell'algoritmo. La sintassi è:
modelloIl primo argomento è un iteratore che indica l'inizio (primo elemento) del vettore. Il secondo argomento è un iteratore che indica fino alla fine (subito dopo l'ultimo elemento) dello stesso vettore. Il terzo argomento è solo il nome della funzione che ha il codice per fare la somma. Questa funzione è un oggetto funzione.
La funzione For_each () viene utilizzata come chiamata di funzione, che invierà ogni elemento del vettore, a partire dal primo a un'altra funzione, f. La funzione, F farà tutto ciò che vuole fare con l'elemento nel suo corpo. Ogni elemento del vettore è un argomento per la funzione, f. Il programmatore definisce la funzione, f e può dargli il nome diverso da f (). Il parametro di questa funzione deve essere del tipo di ciascuno degli elementi vettoriali (tutti gli elementi vettoriali sono dello stesso tipo). Il nome del parametro è la scelta del programmatore. Quindi, la funzione For_each () chiama la funzione, f () per ciascun elemento vettoriale.
Il programma per utilizzare la funzione For_each () dovrebbe iniziare come segue:
#includereLe librerie vettoriali e algoritmo sono incluse. Vengono dichiarati il vettore inizializzato e la somma inizializzata di zero. Una buona definizione di funzione di somma per F, che segue nel programma, può essere:
void fn (int var)Ogni volta che la funzione, FN viene chiamata dalla funzione For_each (), il valore successivo del vettore viene aggiunto alla somma. La funzione principale C ++ può essere la seguente:
int main ()La funzione For_each () è chiamata una volta dalla libreria dell'algoritmo. Il suo primo argomento è un iteratore che indica l'inizio del vettore; Il secondo argomento indica la fine del vettore; e il terzo argomento è il nome dell'oggetto funzione, che viene chiamato per ciascun elemento nel vettore. Dopo che il numero di chiamate, che corrispondono al numero di elementi vettoriali, sono stati fatti, l'istruzione successiva nella funzione principale, stampa la somma finale.
Aggiunta di elementi vettoriali utilizzando la funzione Accumulate ()
La sintassi della funzione Accumulate () della libreria numerica, è:
modelloCon questa funzione, non è necessario che il programmatore scriva il codice (istruzioni) per la somma. La funzione accumulata () fa la somma. Il suo primo argomento è un iteratore che punta all'inizio del vettore. Il suo secondo argomento è un iteratore, che indica la fine del vettore. Il suo ultimo argomento è il valore della somma iniziale. Dovrebbe essere zero per un vettore di int e 0.0 per un vettore di galleggianti (o doppi). La funzione restituisce la somma.
Vettore degli interi
Il seguente programma riassume tutti gli elementi di un vettore di numeri interi:
#includereL'output è 15; corretto!
Vettore di galleggianti
Il seguente programma riassume tutti gli elementi di un vettore di galleggianti:
#includereL'output è 16.5; corretto!
Problema con la funzione Accumulate
Se il terzo argomento della funzione di accumulo è il tipo sbagliato, la somma sarebbe sbagliata. Ad esempio, se gli elementi sono galleggianti e il terzo argomento è 0 (intero), la somma ignorerebbe tutte le parti decimali dei valori per avere una somma int. Il seguente programma illustra questo:
#includereL'output è 15; sbagliato!
Conclusione
Il classico per loop può essere usato per riassumere gli elementi di un vettore. La per stato basata sulla gamma può essere utilizzata per riassumere gli elementi di un vettore. La funzione For_each () inclusa dalla libreria dell'algoritmo può essere utilizzata per riassumere gli elementi di un vettore. La funzione Accumulate () inclusa dalla libreria numerica può essere utilizzata per riassumere gli elementi di un vettore. Fai attenzione all'uso errato del suo terzo argomento.