Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Struct template string_parse_tree

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Library Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Struct template string_parse_tree

boost::date_time::string_parse_tree — Recursive data structure to allow efficient parsing of various strings.

Synopsis

// In header: <boost/date_time/string_parse_tree.hpp>
template<typename charT> 
struct string_parse_tree {
  // types
  typedef std::multimap< charT, string_parse_tree< charT > > ptree_coll;             
  typedef std::multimap< charT, string_parse_tree >          ptree_coll;             
  typedef ptree_coll::value_type                             value_type;             
  typedef ptree_coll::iterator                               iterator;               
  typedef ptree_coll::const_iterator                         const_iterator;         
  typedef std::basic_string< charT >                         string_type;            
  typedef std::vector< std::basic_string< charT > >          collection_type;        
  typedef parse_match_result< charT >                        parse_match_result_type;
  // construct/copy/destruct
  string_parse_tree(collection_type, unsigned int = 0);
  string_parse_tree(short = -1);
  // public member functions
  void insert(const string_type &, unsigned short);
  short match(std::istreambuf_iterator< charT > &, 
              std::istreambuf_iterator< charT > &, parse_match_result_type &, 
              unsigned int &) const;
  parse_match_result_type 
  match(std::istreambuf_iterator< charT > &, 
        std::istreambuf_iterator< charT > &) const;
  void printme(std::ostream &, int &);
  void print(std::ostream &);
  void printmatch(std::ostream &, charT);
  // public data members
  ptree_coll m_next_chars;
  short m_value;
};

Description

Этот класс обеспечивает быстрый поиск, создавая структуру данных дерева. Он также имеет функцию соответствия, которая может обрабатывать неприятные интераторы ввода путем кэширования значений, поскольку он повторяет дерево, чтобы он мог вернуться по мере необходимости.

string_parse_tree public construct/copy/destruct

  1. <
    string_parse_tree(collection_typenames,unsignedintstarting_point=0);
    >

    Параметр «start_point» обозначает, где начинается нумерация. Начальная точка нуля начнет нумерацию с нуля (Sun = 0, Mon = 1, ...) была начальной точкой одного начала нумерации с одного (Jan = 1, Feb = 2, ...). Дефолт равен нулю, отрицательные ваули не допускаются

  2. <
    string_parse_tree(shortvalue=-1);
    >

string_parse_tree public member functions

  1. <
    voidinsert(conststring_type&s,unsignedshortvalue);
    >
  2. <
    shortmatch(std::istreambuf_iterator<charT>&sitr,
               std::istreambuf_iterator<charT>&stream_end,
               parse_match_result_type&result,unsignedint&level)const;
    >Рекурсивная функция, которая находит соответствующую строку в дереве.

    Обязательно проверьте match_results::has_remaining() after match() is call. Это необходимо, чтобы пользователь мог определить, указывает ли итератор потока на ожидаемый символ или нет (матч() может продвинуть сидер к следующему char в потоке).

    <parse_match_result>, который был возвращен из неудачной попытки матча, может быть отправлен в функцию матча другого<string_parse_tree>, чтобы попытаться провести матч там. Используйте итераторы для частично потребляемого потока, объекта<parse_match_result>и «0» для параметра уровня.

  3. <
    parse_match_result_type
    match(std::istreambuf_iterator<charT>&sitr,
         std::istreambuf_iterator<charT>&stream_end)const;
    >

    Обязательно проверьте результаты матча::has_remaining() после вызова матча(). Это необходимо, чтобы пользователь мог определить, указывает ли итератор потока на ожидаемый символ или нет (матч() может продвинуть сидер к следующему char в потоке).

  4. <
    voidprintme(std::ostream&os,int&level);
    >
  5. <
    voidprint(std::ostream&os);
    >
  6. <
    voidprintmatch(std::ostream&os,charTc);
    >

PrevUpHomeNext

Статья Struct template string_parse_tree раздела The Boost C++ Libraries BoostBook Documentation Subset Library Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Library Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 22:37:58/0.006782054901123/0