Operator w strumienu.
Ostatnio zmodyfikowano 2014-03-14 22:07
michal11 Temat założony przez niniejszego użytkownika |
Operator w strumienu. » 2014-03-14 19:16:37 W jednym z tematu w=było coś takiego cout << +* max_element( Napis.begin(), Napis.end() );
Mam pytanie co oznacza +* w tym strumieniu ? |
|
Monika90 |
» 2014-03-14 20:12:18 max_element zwraca iterator, żeby otrzymać wartość do której się ten iterator odnosi trzeba użyć gwiazdki (zupełnie tak jak dla wskaźników, iterator to taki abstrakcyjny wskaźnik). Wartość zwrócona przez operator * jest następnie argumentem dla operatora +. Operator + nic nie robi poza tym że wymusza promocję całkowitoliczbową swego argument. To znaczy, że zwrócona przez operator* wartość typu char będzie konwertowana na int (lub unsigned int). Dzięki czemu wydrukowany zostanie kod znaku, a nie znak. Przykład: std::cout << 'A'; std::cout << + 'A';
I żeby było całkowicie jasne, to taki zapis: +* max_element( Napis.begin(), Napis.end() )
jest interpretowany przez kompilator tak: ( +( *( max_element( Napis.begin(), Napis.end() ) ) ) )
|
|
michal11 Temat założony przez niniejszego użytkownika |
» 2014-03-14 22:07:39 Dziękuje bardzo. |
|
« 1 » |