To jest stara wersja strony!
Biblioteka boost Tokenizer zapewnia elastyczny i łatwy w użyciu mechanizm dzielenia dowolnych łańcuchów znakowych na serię tokenów, grup znaków o podanych cechach. Biblioteka umożliwia wybór metody podziału łańcucha poprzez parametryzowane funktory TokenizerFunction.
Powyższa klasa umożliwia widok na sekwencję znaków jak na kontener zawierający tokeny. Dostęp do tokenów zawartych w takim kontenerze zapewniony jest za pomocą iteratorów zdefiniowanych w bibliotece. Klasa tokenizer jest klasą szablonową pozwalającą tworzyć obiekty dzielące sekwencje znakowe określonego typu według okrślonego sposobu podziału. Warto zauważyć,że podany łańcuch znakowy nie jest dzielony w czasie inicjalizacj obiektu, lecz na żądanie.
template < class TokenizerFunc = char_delimiters_separator<char>, class Iterator = std::string::const_iterator, class Type = std::string > class tokenizer
Parametrami szablonu są:
—-
Prosty przykład użycia biblioteki:
#include<iostream> #include<boost/tokenizer.hpp> #include<string> using namespace std; using namespace boost; string str = "To jest, prosty przyklad"; int main(){ //utorzenie domyślnego obiektu klasy tokenizer, w którym ciąg znaków string //dzielony jest na podstawie odstępów i znaków interpunkcyjnych tokenizer<> t(s); //dostęp do pojedyńczych tokenówjest realizowany przy użyciu iteratorów for(tokenizer<>::iterator beg=t.begin(); beg!=t.end();++beg){ cout << *beg << "\n"; } }
Wynikiem działania programu będzie sekwencja:
To jest prosty przyklad