Rozdział 27 - różnica w zapisie
Ostatnio zmodyfikowano 2016-07-16 21:03
neferx Temat założony przez niniejszego użytkownika |
Rozdział 27 - różnica w zapisie » 2016-07-16 18:53:48 Cześć. Mam do was kolejne pytanie, a mianowicie czy będzie różnica w działaniu programu przy zastosowanie dwóch sposobów zapisu: #include <string> #include <iostream>
using namespace std;
void szukajZnaku( string & tekst, string fraza ) { size_t pozycja = tekst.find( fraza ); if( pozycja == string::npos ) cout << "Nie znaleziono frazy w tekscie" << endl; else { do { cout << "Fraze odnaleziono na pozycji nr: " << pozycja << endl; pozycja = tekst.find( fraza, pozycja + 1 ); } while( pozycja != string::npos ); } }
int main() { string naszTekst = "Przyklad z kursu C++ (http://cpp0x.pl) - najlepszy kurs C++ w Internecie!"; szukajZnaku( naszTekst, "C++" ); return 0; }
oraz #include <string> #include <iostream>
using namespace std;
void szukajZnaku( string & tekst, string fraza ) { size_t pozycja = tekst.find( fraza ); if( pozycja == std::string::npos ) { std::cout << "Nie znaleziono frazy w tekscie" << std::endl; return; } do { std::cout << "Fraza zostala odnaleziona na pozycji nr: " << pozycja << std::endl; pozycja = tekst.find( fraza, pozycja + fraza.size() ); } while( pozycja != std::string::npos ); }
int main() { string naszTekst = "Przyklad z kursu C++ (http://cpp0x.pl) - najlepszy kurs C++ w Internecie!"; szukajZnaku( naszTekst, "C++" ); return 0; }
|
|
aksen |
» 2016-07-16 20:01:40 sam przetestuj, przecież program jest prosty nikt nie będzie siedział i analizował każdego znaczku główna różnica jest w tych 2 liniach: pozycja = tekst.find( fraza, pozycja + 1 ); pozycja = tekst.find( fraza, pozycja + fraza.size() );
|
|
neferx Temat założony przez niniejszego użytkownika |
» 2016-07-16 20:58:10 Przetestowałem i z tego co widzę, to działa poprawnie, ale widocznie musiał być jakiś sens w zmianie sposobu zapisu, skoro autor kursu go zmienił przy przejściu z wyszukiwania pojedynczych znaków do wyszukiwania fraz.
@carlosmay Dzięki za odpowiedź. Zamykam. |
|
carlosmay |
» 2016-07-16 21:03:02 widocznie musiał być jakiś sens w zmianie sposobu zapisu |
Drugi przykład jest zoptymalizowany dla szukania fraz. Rozpoczyna szukanie kolejnego wystąpienia frazy od pierwszego znaku za wcześniej znalezioną frazą, bo szukanie po znakach poprzednio znalezionej nie ma sensu (mniej porównań wykonuje metoda). |
|
« 1 » |