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> |