Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Operator w strumienu.

Ostatnio zmodyfikowano 2014-03-14 22:07
Autor Wiadomość
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

C/C++
cout << +* max_element( Napis.begin(), Napis.end() );

Mam pytanie co oznacza +* w tym strumieniu ?
P-106363
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:
C/C++
std::cout << 'A'; //drukuje A
std::cout << + 'A'; //drukuje kod A

I żeby było całkowicie jasne, to taki zapis:
C/C++
+* max_element( Napis.begin(), Napis.end() )
jest interpretowany przez kompilator tak:
C/C++
( +( *( max_element( Napis.begin(), Napis.end() ) ) ) )
P-106367
michal11
Temat założony przez niniejszego użytkownika
» 2014-03-14 22:07:39
Dziękuje bardzo.
P-106378
« 1 »
  Strona 1 z 1