Z pierwszymi trzema wymienionymi powyżej, stwierdzenia muszą zostać napisane, aby faktycznie wykonać sumę. Za pomocą metody akumulacji funkcja akumulat () wykonuje sumowanie bez dodatkowych instrukcji sumowania. Te cztery metody są zilustrowane w tym artykule. Aby zakodować wektor w programie C ++, biblioteka wektorowa jest włączona do programu.
Treść artykułu
- Dodawanie elementów wektorowych za pomocą pętli
- Dodawanie elementów wektorowych za pomocą opartego na zakresie podatku
- Dodawanie elementów wektorowych za pomocą funkcji for_each ()
- Dodawanie elementów wektorowych za pomocą funkcji akumulat ()
- Wniosek
Dodawanie elementów wektorowych za pomocą pętli
Rozważ wektor:
wektorAby dodać wszystkie te elementy od samego początku, zmienna sumy, początkowo utrzymująca wartość zero, musi zostać zadeklarowana w następujący sposób:
Float sum = 0.0;Od indeksu zero do ostatniego indeksu, każda wartość jest dodawana do sum. Poniższy program ilustruje to:
#włączaćWyjście to 16.5 Zgodnie z oczekiwaniami. Zauważ, że uwzględniono bibliotekę wektorową i użyto standardowej przestrzeni nazw.
Dodawanie elementów wektorowych za pomocą opartego na zakresie podatku
Rozważ następujący wektor liczb całkowitych:
wektorAby dodać wszystkie te elementy od samego początku, zmienna sumy, początkowo utrzymująca wartość zero, musi zostać zadeklarowana w następujący sposób:
int sum = 0;Od pierwszego elementu wektora do ostatniego elementu, każda wartość jest dodawana do sum. Oparta na oparciu o zasięgu instrukcji jest podobna do powyższego instrukcji For-Compound. Jednak parametry opartej na pętli opartej na zasięgu różnią się od parametrów klasycznej formy (powyżej).
Istnieją dwa parametry w nawiasach opartych na pętli opartej na zakresie: pierwsza jest deklaracją zmienną, która odnosi się do następnego elementu w wektorze, zaczynając od pierwszego. Zastępuje VTR [i], klasycznego for-pętla powyżej. Drugi parametr to nazwa wektora. Składnia opartego na zasięgu instrukcji oparcia się
dla (instancja-init-opcja-opcja-declarację: for-range-initializer) instrukcjaOparta na pętli oparta na zasięgu jest wariantem klasycznego za pętla; Wygodniej jest go używać w iteracji listy. Deklaracja zmienna jest przed okrężnicą, a nazwa wektora jest po okrężnicy. Poniższy program pokazuje oparte na oparciu o oświadczenie o skomponowaniu w akcji:
#włączaćWyjście to 15. Uwaga: nazwa zmiennej, var, jest wyborem programisty. W tej pozycji odnosi się do następnego elementu (wartości) w wektorze.
Dodawanie elementów wektorowych za pomocą funkcji for_each ()
Funkcja for_each () znajduje się w bibliotece algorytmu. Składnia to:
szablonPierwszym argumentem jest iterator, który wskazuje początek (pierwszy element) wektora. Drugim argumentem jest iterator, który wskazuje na koniec (tuż po ostatnim elemencie) tego samego wektora. Trzeci argument to tylko nazwa funkcji, która ma kod do wykonania sumowania. Ta funkcja jest obiektem funkcji.
Funkcja FOR_EACH () jest używana jako wywołanie funkcji, które wyśle każdy element wektora, zaczynając od pierwszej do innej funkcji, F. Funkcja, F zrobi wszystko, co chce zrobić z elementem w jego ciele funkcyjnym. Każdy element wektora jest argumentem funkcji, F. Programator definiuje funkcję, F i może nadać mu nazwę inną niż f (). Parametr tej funkcji musi być typu każdego z elementów wektorowych (wszystkie elementy wektorowe są tego samego typu). Nazwa parametru jest wyborem programisty. Tak więc funkcja for_each () wywołuje funkcję, f () dla każdego elementu wektora.
Program do korzystania z funkcji for_each () powinien rozpocząć się w następujący sposób:
#włączaćUwzględniono biblioteki wektora i algorytmu. Zainicjowany wektor i zainicjowana suma zera są zadeklarowane. Dobra definicja funkcji sumowania dla F, która następuje w programie, może być:
void fn (int var)Za każdym razem, gdy funkcja FN jest wywoływana przez funkcję FOR_EACH (), następna wartość wektora jest dodawana do sumy. Główna funkcja C ++ może być następująco:
int main ()Funkcja for_each () jest wywoływana raz z biblioteki algorytmu. Jego pierwszym argumentem jest iterator, który wskazuje na początek wektora; drugi argument wskazuje na koniec wektora; a trzeci argument to nazwa obiektu funkcyjnego, który jest wywoływany dla każdego elementu w wektorze. Po dokonaniu liczby połączeń, które odpowiadają liczbie elementów wektorowych, następna instrukcja w głównej funkcji, drukuje końcową sumę.
Dodawanie elementów wektorowych za pomocą funkcji akumulat ()
Składnia funkcji cumaluate () biblioteki numerycznej jest:
szablonDzięki tej funkcji nie ma potrzeby zapisywania kodu (instrukcji) do sumowania. Funkcja akumulat () wykonuje sumowanie. Jego pierwszym argumentem jest iterator wskazujący na początek wektora. Jego drugim argumentem jest iterator, wskazujący na koniec wektora. Jego ostatnim argumentem jest początkowa wartość sumy. Powinno być zerowe dla wektora ints i 0.0 dla wektora pływaków (lub podwójnych). Funkcja zwraca sumę.
Wektor liczb całkowitych
Poniższy program podsumowuje wszystkie elementy wektora liczb całkowitych:
#włączaćWyjście to 15; prawidłowy!
Wektor pływaków
Poniższy program podsumowuje wszystkie elementy wektora pływaków:
#włączaćWyjście to 16.5; prawidłowy!
Problem z funkcją akumulacji
Jeśli trzeci argument funkcji akumulacji jest niewłaściwy typ, suma byłaby błędna. Na przykład, jeśli elementy są pływakami, a trzeci argument to 0 (liczba całkowita), suma zignorowałaby wszystkie części dziesiętne wartości, aby mieć sumę int. Poniższy program ilustruje to:
#włączaćWyjście to 15; zło!
Wniosek
Klasyczne na pętlę można wykorzystać do podsumowania elementów wektora. Do podsumowania elementów wektora można wykorzystać oparte na zakresie zasięgu. Do podsumowania elementów wektora można użyć funkcji FOR_EACH (). Do podsumowania elementów wektora można użyć funkcji akumulatu (). Po prostu uważaj na niepoprawne użycie trzeciego argumentu.