Giriş
Şu satırı dahil ederiz.
1. char_delimeters_separator (depricated),
2. char_separator
3. escaped_list_separator
sınıfları var.
Bu sınıflar ayraç olarak karakter kullanıyorlar. Birden fazla ayraç tanımlamak mümkün ancak maalesef ayraç olarak string kullanmak bu sınıflarla mümkün değil.Dolayısıyla araç olarak "ab" gibi bir şey kullanamıyoruz.
Eğer ayraç olarak string kullanmak istersek şöyle yaparız.
Template Parametreleri
tokenizer sınıfı default template paramereleri tanımlar. Bunlar şöyledir.
Şöyle yaparız.
Şöyle yaparız.
escaped_list separator csv formatında kullanılır. a,"b,c",d gibi bir string'de " karakteri ile escape edilmesi gereken durumlarda işe yarar. Şöyle yaparız.
Yeni bir string'i tokenlara ayırmak içindir. Şöyle yaparız.
iterator tip olarak std::string döner. Şöyle yaparız.
Şu satırı dahil ederiz.
#include <boost/tokenizer.hpp>
Tüm sınıf TokenizerFunc üzerine kurulu. Bu metodu gerçekleştiren1. char_delimeters_separator (depricated),
2. char_separator
3. escaped_list_separator
sınıfları var.
Bu sınıflar ayraç olarak karakter kullanıyorlar. Birden fazla ayraç tanımlamak mümkün ancak maalesef ayraç olarak string kullanmak bu sınıflarla mümkün değil.Dolayısıyla araç olarak "ab" gibi bir şey kullanamıyoruz.
Eğer ayraç olarak string kullanmak istersek şöyle yaparız.
Template Parametreleri
tokenizer sınıfı default template paramereleri tanımlar. Bunlar şöyledir.
template <
class TokenizerFunc = char_delimiters_separator<char>,
class Iterator = std::string::const_iterator,
class Type = std::string
>
class tokenizer;
Eğer depricated char_delimeters_separator sınıfını kullanmak istemezsek şöyle yaparız.typedef boost::tokenizer<boost::char_separator<char> > Tokenizer;
Constructor - stringŞöyle yaparız.
std::string s = "...";
boost::tokenizer<> tok (s);
Constructor - string + char_separatorŞöyle yaparız.
string str = "...";
boost::char_separator<char> sep(" \t");
boost::tokenizer<char_separator<char> > tokens(str, sep);
Constructor - string + escaped_list_separatorescaped_list separator csv formatında kullanılır. a,"b,c",d gibi bir string'de " karakteri ile escape edilmesi gereken durumlarda işe yarar. Şöyle yaparız.
string str = "...";
string separator1(""); //dont let quoted arguments escape themselves
string separator2(",\n"); //split on comma and newline
string separator3("\""); //let it have quoted arguments
escaped_list_separator<char> els(separator1, separator2, separator3);
tokenizer<escaped_list_separator<char>> tok(str, els);
assign metodu - stringYeni bir string'i tokenlara ayırmak içindir. Şöyle yaparız.
std::string str = "...";
boost::tokenizer<> tok (str);
str = "..."
tok.assign (str);
begin ve end metodlarıiterator tip olarak std::string döner. Şöyle yaparız.
string token = *it;
Şöyle yaparız.boost::tokenizer<> tok = ...;
for (tok::iterator it = tok.begin(); it != tok.end(); ++it){
std::cout << *it << " : ";
}
Şöyle yaparız.BOOST_FOREACH (string t, tok)
{
std::cout << t << ":";
}
Şöyle yaparız.for (auto t : tok
{
std::cout << t << '" : ";
}
const auto& olarak kullanmak için şöyle yaparız.for (const auto& t : tok) {
std::cout << t << std::endl;
}
Hiç yorum yok:
Yorum Gönder