Narzędzia użytkownika

Narzędzia witryny


tokenizer

To jest stara wersja strony!


Biblioteka boost Tokenizer

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.

Klasa Tokenizer

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

  • TokenizerFunc - funktor używany do dzielenia sekwencji
  • Iterator - typ iteratora specyfikującego sekwencję
  • Type - typ sekwencji

—-

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

Iteratory Token Iterator

Funktory TokenizerFunction

Klasa char_separator


Klasa escaped_list_separator


Klasa offset_separator

tokenizer.1208000721.txt.gz · ostatnio zmienione: 2008/04/12 13:45 przez mplacht1