lekcja 18 praca domowa problem z sumą.
Ostatnio zmodyfikowano 2017-09-06 10:21
AmbitnyIdiota Temat założony przez niniejszego użytkownika |
» 2017-09-05 23:29:54 @Kinexity wielkie dzięki, genialnie wytłumaczone, na lepszą pomoc nie mogłem trafić :D @baziorek dzięki za dodatki, poczytam o nich trochę więcej. |
|
AmbitnyIdiota Temat założony przez niniejszego użytkownika |
» 2017-09-06 00:20:45 const unsigned iloscLiczb = sizeof( liczby ) / sizeof( liczby[ 0 ] ); cout << "Suma wylosowanych liczb: " << accumulate( liczby, liczby + iloscLiczb, 0 )[b/];
To co jest pogrubione nie rozumiem w jaki dokładnie działa sposób. |
|
karambaHZP |
» 2017-09-06 05:47:43 sizeof( liczby ) - operator sizeof zwraca w bajtach wielkość całej tablicy. Pamietaj, że w ten sposób można sprawdzać wielkość tablicy w zasięgu definicji tablicy. std::accumulate() jak pewnie czytałeś w dokumentacji, jest funkcją, która przyjmuje dwa iteratory (początku i końca przedziału) i sumuje wszystkie wartości w przekazanym przedziale od wartości przekazanaj w trzecim argumencie. Pogrubione elementy to adresy, odpowiednio początek tablicy i pierwszy adres za tablicą, które są konwertowane na iteratory. Lepiej zrozumiesz to zagadnienie gdy rozpoczniesz pracę z kontenerami standardowej biblioteki szablonów. Ważne: sprawdzanie wielkości tablicy operatorem sizeof daje prawidłowy wynik, tylko w zasięgu definicji tablicy. Przekazanie tablicy do funkcji powoduje konwersję adresu początku tablicy na wskaźnik i wtedy operator sizeof zwróci wielkość wskaźnika (4 lub 8 bajtów). Lepiej deklarować wielkość tablicy stałą z góry ustaloną wielkością lub skorzystać z np. std::vector, który dynamicznie przydziela elementy i zwraca wielkość tablicy metodą std::vector::size() |
|
AmbitnyIdiota Temat założony przez niniejszego użytkownika |
» 2017-09-06 10:21:27 Okej już rozumiem, dziękuje. |
|
1 « 2 » |