Różnice między wybraną wersją a wersją aktualną.
| Both sides previous revision Previous revision | |||
| tokenizer [2008/04/14 08:26] mplacht1 | tokenizer [2008/04/14 08:45] (aktualna) mplacht1 | ||
|---|---|---|---|
| Linia 98: | Linia 98: | ||
| * Type - typ sekwencji\\ | * Type - typ sekwencji\\ | ||
| \\ | \\ | ||
| - | W celu utorzenia iteratora musimy podać iterator wskazujący na początek dzielonej sekwencji ''begin'', interator wskazujący dokładnie za dzieloną sekwencję ''end'' oraz funkcję podziału sekwencji ''fun''. | + | W celu utorzenia iteratora musimy podać iterator wskazujący na początek dzielonej sekwencji ''begin'', iterator wskazujący dokładnie za dzieloną sekwencję ''end'' oraz funkcję podziału sekwencji ''fun''. | 
| <code cpp> | <code cpp> | ||
| template<class Type, class Iterator, class TokenizerFunc> | template<class Type, class Iterator, class TokenizerFunc> | ||
| Linia 105: | Linia 105: | ||
| </code> | </code> | ||
| \\ | \\ | ||
| - | Przykład użycia orzy wykorzystaniu funktora ''offset_separator'' dzielącego łańcuch znakowy na podciągi o określonej długości. | + | Przykład użycia przy wykorzystaniu funktora ''offset_separator'' (opisanego dalej) dzielącego łańcuch znakowy na podciągi o określonej długości. | 
| <code cpp> | <code cpp> | ||
| #include<iostream> | #include<iostream> | ||
| Linia 141: | Linia 141: | ||
| \\ | \\ | ||
| Funkcja ''strtok()'' po dokonaniu podziału sekwencji nie umieszcza znaków rodzielających poszczególne podciągi. Jednak czasami okazuje się przydatnym posiadanie znaków rozdzielających pojawiających się w wyjściowej sekwencji podciągów, dlatego ''char_separator'' zapewnia takie rozwiązanie.\\ | Funkcja ''strtok()'' po dokonaniu podziału sekwencji nie umieszcza znaków rodzielających poszczególne podciągi. Jednak czasami okazuje się przydatnym posiadanie znaków rozdzielających pojawiających się w wyjściowej sekwencji podciągów, dlatego ''char_separator'' zapewnia takie rozwiązanie.\\ | ||
| - | Kiedy swa znaki rozdzielające znajdują sie w sekwencji jeden za drugim. funkcja ''strtok()'' pomija je, natomiast ''char_separator'' pozwala również w takiej sytuacji na utworzenie pustego podciągu, w zależności od wyboru.\\  | + | Kiedy dwa znaki rozdzielające znajdują sie w sekwencji jeden za drugim. funkcja ''strtok()'' pomija je, natomiast ''char_separator'' pozwala również w takiej sytuacji na utworzenie pustego podciągu, w zależności od wyboru.\\  | 
| \\ | \\ | ||
| Poniższy przykład pokazuje jak zastąpić funkcję ''strtok()'' za pomocą ''char_separator''. Określone są trzy znaki rozdzielające, które nie pojawią się w wyjściowych podciągach, puste podciągi będą ignorowane. | Poniższy przykład pokazuje jak zastąpić funkcję ''strtok()'' za pomocą ''char_separator''. Określone są trzy znaki rozdzielające, które nie pojawią się w wyjściowych podciągach, puste podciągi będą ignorowane. | ||
| Linia 255: | Linia 255: | ||
| ---- | ---- | ||
| ==== Klasa offset_separator ==== | ==== Klasa offset_separator ==== | ||
| - | Klasa ''offset_separator'' jest jedną z implementacji funktora TokenizerFunction, która może być użyta w celu podziału sekwencji na podciągi. ''offset_separator'' dzieli sekwencję znaków ''char'' na łańcuchy znakowe o określonej długości bazując na zdefiniowanych przesunięciach.\\ | + | Klasa ''offset_separator'' jest kolejną z implementacji funktora TokenizerFunction, która może być użyta w celu podziału sekwencji na podciągi. ''offset_separator'' dzieli sekwencję znaków ''char'' na łańcuchy znakowe o określonej długości bazując na zdefiniowanych przesunięciach.\\ | 
| Poniższy przykład dzieli sekwencję "12252001" przy użyciu przesunięc(2,2,4) na podciągi 12 25 2001: | Poniższy przykład dzieli sekwencję "12252001" przy użyciu przesunięc(2,2,4) na podciągi 12 25 2001: | ||
| <code cpp> | <code cpp> | ||