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

Class template basic_ptree

Boost , The Boost C++ Libraries BoostBook Documentation Subset , 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

Class template basic_ptree

boost::property_tree::basic_ptree

Synopsis

// In header: <boost/property_tree/ptree.hpp>
template<typename Key, typename Data, typename KeyCompare> 
class basic_ptree {
public:
  // types
  typedef basic_ptree< Key, Data, KeyCompare > self_type;  
  typedef Key                                  key_type;   
  typedef Data                                 data_type;  
  typedef KeyCompare                           key_compare;
  typedef std::pair< const Key, self_type >    value_type; 
  typedef std::size_t                          size_type;  
  typedef path_of< Key >::type                 path_type;  
  // construct/copy/destruct
  basic_ptree();
  explicit basic_ptree(const data_type &);
  basic_ptree(const self_type &);
  self_type & operator=(const self_type &);
  ~basic_ptree();
  // public member functions
  void swap(self_type &);
  size_type size() const;
  size_type max_size() const;
  bool empty() const;
  iterator begin();
  const_iterator begin() const;
  iterator end();
  const_iterator end() const;
  reverse_iterator rbegin();
  const_reverse_iterator rbegin() const;
  reverse_iterator rend();
  const_reverse_iterator rend() const;
  value_type & front();
  const value_type & front() const;
  value_type & back();
  const value_type & back() const;
  iterator insert(iterator, const value_type &);
  template<typename It> void insert(iterator, It, It);
  iterator erase(iterator);
  iterator erase(iterator, iterator);
  iterator push_front(const value_type &);
  iterator push_back(const value_type &);
  void pop_front();
  void pop_back();
  void reverse();
  template<typename Compare> void sort(Compare);
  void sort();
  bool operator==(const self_type &) const;
  bool operator!=(const self_type &) const;
  assoc_iterator ordered_begin();
  const_assoc_iterator ordered_begin() const;
  assoc_iterator not_found();
  const_assoc_iterator not_found() const;
  assoc_iterator find(const key_type &);
  const_assoc_iterator find(const key_type &) const;
  std::pair< assoc_iterator, assoc_iterator > equal_range(const key_type &);
  std::pair< const_assoc_iterator, const_assoc_iterator > 
  equal_range(const key_type &) const;
  size_type count(const key_type &) const;
  size_type erase(const key_type &);
  iterator to_iterator(assoc_iterator);
  const_iterator to_iterator(const_assoc_iterator) const;
  data_type & data();
  const data_type & data() const;
  void clear();
  self_type & get_child(const path_type &);
  const self_type & get_child(const path_type &) const;
  self_type & get_child(const path_type &, self_type &);
  const self_type & get_child(const path_type &, const self_type &) const;
  optional< self_type & > get_child_optional(const path_type &);
  optional< const self_type & > get_child_optional(const path_type &) const;
  self_type & put_child(const path_type &, const self_type &);
  self_type & add_child(const path_type &, const self_type &);
  template<typename Type, typename Translator> 
    unspecified get_value(Translator) const;
  template<typename Type> Type get_value() const;
  template<typename Type, typename Translator> 
    Type get_value(const Type &, Translator) const;
  template<typename Ch, typename Translator> 
    unspecified get_value(const Ch *, Translator) const;
  template<typename Type> unspecified get_value(const Type &) const;
  template<typename Ch> unspecified get_value(const Ch *) const;
  template<typename Type, typename Translator> 
    optional< Type > get_value_optional(Translator) const;
  template<typename Type> optional< Type > get_value_optional() const;
  template<typename Type, typename Translator> 
    void put_value(const Type &, Translator);
  template<typename Type> void put_value(const Type &);
  template<typename Type, typename Translator> 
    unspecified get(const path_type &, Translator) const;
  template<typename Type> Type get(const path_type &) const;
  template<typename Type, typename Translator> 
    Type get(const path_type &, const Type &, Translator) const;
  template<typename Ch, typename Translator> 
    unspecified get(const path_type &, const Ch *, Translator) const;
  template<typename Type> 
    unspecified get(const path_type &, const Type &) const;
  template<typename Ch> unspecified get(const path_type &, const Ch *) const;
  template<typename Type, typename Translator> 
    optional< Type > get_optional(const path_type &, Translator) const;
  template<typename Type> 
    optional< Type > get_optional(const path_type &) const;
  template<typename Type, typename Translator> 
    self_type & put(const path_type &, const Type &, Translator);
  template<typename Type> self_type & put(const path_type &, const Type &);
  template<typename Type, typename Translator> 
    self_type & add(const path_type &, const Type &, Translator);
  template<typename Type> self_type & add(const path_type &, const Type &);
  // private member functions
  self_type * walk_path(path_type &) const;
  self_type & force_path(path_type &);
};

Description

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

Ключевая эквивалентность определяетсяKeyCompare, предикатом, определяющим строгую слабую упорядоченность.

Дерево свойств определяет контейнероподобный интерфейс к парам (ключевым узлам) его прямых подузлов. Итераторы являются двунаправленными. Последовательность узлов удерживается в порядке вставки, а не в ключевом порядке.

basic_ptree public types

  1. Typedefbasic_ptree<Ключ,Данные,Ключевые слова>self_type;

    Более простой способ ссылки на этоbasic_ptreeтип. Обратите внимание, что это конфиденциально и публично только для доксигена.

basic_ptree public construct/copy/destruct

  1. basic_ptree;

    Создает узел без детей и данных, построенных по умолчанию.

  2. эксплицитноbasic_ptreeconstdata_type&data;

    Создает узел без детей и копию данных.

  3. basic_ptreeconstself_type&rhs;
  4. self_type&оператор=constself_type&rhs;

    Базовая гарантия.

  5. ~basic_ptree;

basic_ptree public member functions

  1. voidswapself_type&rhs;

    Своп с другим деревом. Только в постоянное время и не брови, если обмен типа данных.

  2. размер_типразмерконст;

    Количество прямых детей этого узла.

  3. size_typemax_sizeconst;
  4. boolemptyconst;

    Есть ли прямые дети?

  5. итераторначинают;
  6. const_iteratorначинаютconst;
  7. итераторконец;
  8. const_iteratorendconst;
  9. reverse_iteratorrbegin;
  10. const_reverse_iteratorrbeginconst;
  11. reverse_iteratorrend;
  12. const_reverse_iteratorrendconst;
  13. значение_тип&фронт;
  14. constvalue_type&frontconst;
  15. значение_тип&назад;
  16. constvalue_type&backconst;
  17. итераторвставитьитератор, где,констзначение_тип&значение];

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

    Возвращение:

    Итератор для вновь созданного ребенка.

  18. шаблон<имя типаIt>voidвставитьитератор, где,Онпервый,Последний;

    Диапазон вставки. Эквивалентно:

    для;первый!=последний;++первыйвставить, гдепервый;

  19. итераторстираютитератор, где;

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

    Возвращает:

    Действительный итератор, указывающий на элемент после стирания.

  20. итераторстираютитераторпервый,итераторпоследний;

    Стирание хребта. Эквивалентно:

    в то время какпервый!=последний;]первый=стеретьпервый;

  21. итераторpush_frontconstзначение_type&значение;

    Эквивалент вставки (начало(), значение.

  22. итераторpush_backconstvalue_type&value];

    Эквивалент вставки (конец(), значение.

  23. voidpop_front;

    Эквивалент стирания (начало()).

  24. voidpop_back;

    Эквивалент стирания (буст::приор(конец())).

  25. пустотаобратная;

    Обратный порядок прямых детей в дереве собственности.

  26. шаблон<имя типаСравните>пустотасорт;

    Сортирует прямых детей этого узла по предикату. Предикат проходит вся пара ключа и ребенок.

  27. voidsort;

    Сортирует прямых детей этого узла по ключевому порядку.

  28. boolоператор==constself_type&rhsconst;

    Два дерева свойств одинаковы, если они имеют одинаковые данные, ключи и порядок их детей одинаковы, и дети сравниваются равными, рекурсивно.

  29. boolоператор!=constself_type&rhsconst;
  30. assoc_iteratorordered_begin;

    Возвращает итератор первому ребенку в ключевом порядке.

  31. const_assoc_iteratorordered_beginconst;

    Возвращает итератор первому ребенку в ключевом порядке.

  32. assoc_iteratornot_found;

    Возвращает не найденный итератор. Эквивалент конца () в реальном ассоциативном контейнере.

  33. const_assoc_iteratornot_foundconst;

    Возвращает не найденный итератор. Эквивалент конца () в реальном ассоциативном контейнере.

  34. assoc_iteratorfindconstkey_type&key];

    Найдите ребенка с заданным ключом или не найденным, если его нет. Нет никакой гарантии, что ребенок будет возвращен, если у нескольких детей один и тот же ключ.

  35. const_assoc_iteratorнайдитеconstkey_type&key]const;

    Найдите ребенка с данным ключом, или не найден(), если его нет. Нет никакой гарантии, что ребенок будет возвращен, если у нескольких детей один и тот же ключ.

  36. std::pair<assoc_iterator,assoc_iterator>equal_rangeconstkey_type&ключ;

    Найдите детей, у которых есть данный ключ.

  37. std::pair<const_assoc_iterator,const_assoc_iterator>equal_rangeconst;

    Найдите детей, у которых есть данный ключ.

  38. size_typecountconstkey_type&key]const;

    Подсчитайте количество детей с заданным ключом.

  39. size_typeeraseconstkey_type&key];

    Удалите всех прямых детей с заданным ключом и верните счет.

  40. итератордо_iteratorассоци_iterator;

    Получите итератор, который указывает на тот же элемент, что и аргумент.

    [Note]Примечание

    Действительный диапазон a, b не означает, что (to_iterator(a), to_iterator(b)) является действительным диапазоном.

  41. const_iteratorto_iteratorconst_assoc_iteratorconst;

    Получите итератор, который указывает на тот же элемент, что и аргумент.

    [Note]Примечание

    Действительный диапазон const_assoc_iterator (a, b) не означает, что (to_iterator(a), to_iterator(b)) является действительным диапазоном.

  42. data_type&data;

    Ссылка на фактические данные в этом узле.

  43. constdata_type&const;

    Ссылка на фактические данные в этом узле.

  44. пустотаясно;

    Очистите это дерево полностью как от данных, так и от детей.

  45. self_type&get_childconstPath_type&Path];

    Получить ребенка на данном пути, или броситьptree_bad_path.

    [Note]

    В зависимости от пути, результат на каждом уровне может быть не вполне детерминированным, т.е. если один и тот же ключ появляется несколько раз, какой ребенок выбран, не уточняется. Это может привести к тому, что путь не будет решен, даже если есть потомок с этим путем. Пример:

    a->b->c->b

    Путь «a.b.c» будет успешным, если разрешение «b» выберет первый такой узел, но потерпит неудачу, если выберет второй.

  46. constself_type&get_childconstconstpath_type&Path]const

    Получите ребенка на заданном пути или бросьтеptree_bad_path

    .
  47. self_type&get_childconstpath_type&Path&self_type&default_value;

    Получите ребенка по заданному пути или вернитезначение по умолчанию

    .
  48. constself_type&get_childconstpath_type&const&],self_type&default_value]const

    Получите ребенка по заданному пути или вернитезначение по умолчанию

    .
  49. факультативный<self_type&>get_child_optionalconstPath_type&Path];

    Получите ребенка на заданном пути, или верните повышение::нул.

  50. необязательно<constself_type&>>get_child_optionalconst&const

    Получите ребенка на заданном пути или верните повышение::нул.

  51. self_type&put_childconstpath_type&Path&Path&ConstSelf_typeSelf_type&Value;

    Установите узел на заданном пути к заданному значению. Создать пропавших родителей. Если узел на пути уже существует, замените его.

    [Note]Примечание

    Из-за того, как работают пути, обычно не гарантируется, что вновь созданный узел может быть доступен с использованием того же пути.

    Если путь может относиться к нескольким узлам, то неизвестно, какой из них будет заменен.

    Возвращение:

    Ссылка на вставленное дерево.

  52. self_type&add_childconstpath_type&path&constself_type&value;

    Добавьте узел на заданный путь. Создать пропавших родителей. Если на пути уже есть узел, добавьте еще один с тем же ключом.

    [Note]Примечание

    Из-за того, что пути работают, обычно не гарантируется, что к вновь созданному узлу можно получить доступ, используя тот же путь.

Параметры:

Путь к ребенку. Последний фрагмент не должен иметь индекс.

Возвращает:

Ссылка на вставленное поддеревье.

  • шаблон<имя типаТип,имя типаПереводчик>неуказанныйполучить_значениеtr]const

    Взять значение этого узла и попытаться перевести его на объектТипс помощью поставляемого переводчика.

    Бросает:

    ptree_bad_data, если конверсия не удалась.
  • шаблон<имя типаТип>Типполучить_значениеconst;

    Взять значение этого узла и попытаться перевести его на. Типобъекта с использованием переводчика по умолчанию.

    Бросает:

    ptree_bad_data, если конверсия не удалась.
  • шаблон<типТипТипПереводчик>Типполучим_значениеconstТип&по умолчанию_value,Переводчикtrconst

    Возьмите значение этого узла и попробуйте перевести его на. Типобъекта с использованием поставляемого переводчика. Возвратзначения по умолчанию, если это не удается.

  • шаблон<имя типаCh,имя типаимя типаПереводчик>неуказанныйполучить_значениеконстзначениезначение по умолчанию,переводчикtrконст

    Make get_value do the right thing для струнных букв.

  • шаблон<имя типаТип>неуточненныйполучить_значениеконстТип&дефолт_значениеконстконст

    Взять значение этого узла и попытаться перевести его на. Типобъекта с помощью переводчика по умолчанию. Возвратзначения по умолчанию, если это не удается.

  • шаблон<имя типаCh>неуточненныйget_valueconstdefault_value]const

    Make get_value do the right thing для струнных букв.

  • шаблон<имя типаТип,имя типаПереводчик>факультативный<Тип>>get_value_optionaltr]const

    Взять значение этого узла и попытаться перевести его на 1888 год. Типобъекта с использованием поставляемого переводчика. Возвратный импульс: нуль, если это не удается.

  • шаблон<TypenameType>optional<Type>get_value_optionalconst;

    Взять значение этого узла и попытаться перевести его на объект типас помощью переводчика по умолчанию. Возвратный импульс: нуль, если это не удается.

  • шаблон<типовое имяТип,Типовое имяПереводчик>пустотаPut_valueConstТип&значение,Переводчикtr;

    Замените значение на этом узле заданным значением, переведенным на тип данных дерева с помощью поставляемого переводчика.

    Бросок:

    ptree_bad_data, если конверсия не удалась.
  • шаблон<TypenameType>voidput_valueconstType&значение;

    Замените значение на этом узле заданным значением, переведенным на тип данных дерева с помощью переводчика по умолчанию.

    Броски:

    ptree_bad_data, если конверсия не удалась.
  • шаблон<Typename,typename>неуказанныйполучаютconst&путь,tr]constconst

    Shorthand for get_child(path.get_value(tr)

  • шаблон<имя типаТип>Типполучитьconst&путь]const;

    Краткое изложение для get_child(path.get_value().

  • шаблон<типТипТип>Типполучаютконстпуть_тип&путь,констконстконстпо умолчанию_значение&по умолчанию_значение,констконстконст;КонстКонстКонстТо есть, возвращайте переведенное значение, если это возможно, и значение по умолчанию, если узел не существует или конверсия не работает.

  • шаблон<имя типаCh,имя типанеуказанныйполучаютконстпуть_тип&путь,констконстконстконстпо умолчанию_значениепо умолчанию_значение,констДелайте правильные вещи для струнных букв.

  • шаблон<имя типаТип>неуточненныйполучаютконстпуть_тип&путь,констпо умолчанию_значение&по умолчанию_значениеконст

    Сокращение от get_child(path, empty_ptree()) .get_value(default_value). То есть, возвращайте переведенное значение, если это возможно, и значение по умолчанию, если узел не существует или конверсия не работает.

  • шаблон<имя типа>неуказанныйполучаютконстпуть_тип&путь,констдефолт_значениеконст

    Делайте правильные вещи для струнных букв.

  • шаблон<типТип,типТип>необязательный<Тип>получают_необязательно,,,,,

    Краткое изложение для:

    , еслинеобязательно<self_type&\>узел=get_child_optionalпутьвозвращениевозвращениеповышениенуль

    [23 То есть вернуть значение, если оно существует и может быть преобразовано, или nil.

  • шаблон<имя типаТип>необязательно<Тип>>получить_необязательноконстконст

    Краткое изложение для:

    , еслиconstself_type&>узел=get_child_optional

    [24 То есть вернуть значение, если оно существует и может быть преобразовано, или nil.

  • шаблон<имя типаТип,имя типаимя типаимя типа>self_type&поставитьконст&путь&путьконстконст&значение&значениеtr]

    Установите значение узла на заданном пути к поставляемому значению, переведенному на тип данных дерева. Если узла не существует, он создается, включая всех его отсутствующих родителей.

    Возвращение:

    Узел, который имел свою ценность, изменился.

    Бросает:

    ptree_bad_data, если конверсия не удалась.
  • шаблон<TypenameType>self_type&putconstpath_type&constType&значение;

    Установите значение узла на заданном пути к поставляемому значению, переведенному на тип данных дерева. Если узла не существует, он создается, включая всех его отсутствующих родителей.

    Возвращение:

    Узел, который имел свою ценность, изменился.

    Бросает:

    ptree_bad_data, если конверсия не удалась.
  • шаблон<типТип,типИмяТип>self_type&добавитьconst&путьипуть,констконст&значение,переводчикtr;

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

    Параметры:

    Путь к ребенку. Последний фрагмент не должен иметь индекса.

    tr

    Переводчик для использования.

    значение

    Возвращение:

    Узел, который был добавлен.

    Бросает:

    ptree_bad_data, если конверсия не удалась.
  • шаблон<имя типаТип>self_type&добавитьконстпуть_тип&констконст&значение

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

    Параметры:

    Путь к ребенку. Последний фрагмент не должен иметь индекс.

    Возвращение:

    Узел, который был добавлен.

    Бросает:

    ptree_bad_data, если конверсия не удалась.
  • basic_ptree private member functions

    1. self_type*walk_pathpath_type&p]const;
    2. self_type&force_pathPath_type&p;

    PrevUpHomeNext

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




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



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


    реклама


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

    Время компиляции файла: 2024-08-30 11:47:00
    2025-05-20 06:00:40/0.015980005264282/1