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

[Lekcja 27] Problem z metodą find.

Ostatnio zmodyfikowano 2013-01-05 03:29
Autor Wiadomość
Reavey
Temat założony przez niniejszego użytkownika
[Lekcja 27] Problem z metodą find.
» 2012-12-30 18:47:43
Witam. Będąc szczery i przechodząc od razu do sedna, kompletnie nie rozumiem metody string::find omawianej w tym: » Kurs C++ » Poziom 3Wyszukiwanie frazy w tekście lekcja rozdziale.
Problemów jest kilka, a szczególnie niezrozumiane przeze mnie są dwa:
1) W dokumentacji metody string::find napisane jest:

C/C++
size_type find( value_type ch, size_type off = 0 ) const;
size_type find( const value_type * ptr, size_type off = 0 ) const;
size_type find( const value_type * ptr, size_type off, size_type count ) const;
size_type find( const basic_string & str, size_type off = 0 ) const;

Co w tym zapisie oznacza drugi argument tej metody z pierwszego przykładu? (
size_type off = 0
). Rozumiem, że jest to miejsce, od którego ma się rozpocząć wyszukiwanie, ale czym jest
size_type off
 ?

2) Idąc dalej w rozdziale, powyższy zapis zastąpiony jest:
size_t znalezionaPozycja = tekst.find( szukanyZnak );
Rozumiem, że
size_t
 jest typem danych zawierającym liczby nieujemne. Ale dlaczego metoda find ma tu tylko jeden argument? Czy pisanie, że ma ona szukać "Od zera" jest opcjonalne?

Z góry dziękuję za odpowiedź.

//Edit: Poza tym, czy mógłby ktoś mi wyjaśnić, dlaczego w funkcji
void szukajZnaku( std::string & tekst, char szukanyZnak )
 w pierwszym argumencie występuje referencja? Przecież efekt działania programu byłby taki sam bez niej.
P-72409
SeaMonster131
» 2012-12-30 20:19:19
Co w tym zapisie oznacza drugi argument tej metody z pierwszego przykładu?
http://www.cplusplus.com/reference/string/string/find/

Ale dlaczego metoda find ma tu tylko jeden argument? Czy pisanie, że ma ona szukać "Od zera" jest opcjonalne?
Tak, jest opcjonalny, bo wtedy kompilator automatycznie przypisze mu wartość 0:
C/C++
size_type find( value_type ch, size_type off = 0 ) const;
P-72429
crash
» 2013-01-05 03:29:10
size_t to synonim unsigned int:

typedef unsigned int size_t

Na przyszłość, jeśli będziesz stosował we własnych funkcjach parametry domyślne, obojętne czy jeden czy więcej, to takie parametry muszą znaleźć się na końcu listy parametrów; nie muszą one mieć wartości zero.
P-72992
« 1 »
  Strona 1 z 1