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

Boost Graph Library: Graph Traits

Boost , ,

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

C++ Boost

graph_traits<Graph>

Just like the iterators of STL, graphs have associated types. As stated in the various graph concepts, a graph has quite a few associated types: vertex_descriptor, edge_descriptor, out_edge_iterator, etc.. Any particular graph concepts will not require that all of the following associated types be defined. When implementing a graph class that fullfils one or more graph concepts, for associated types that are not required by the concepts, it is ok to use void as the type (when using nested typedefs inside the graph class), or to leave the typedef out of the graph_traits specialization for the graph class. Note that because of the use of traits classes rather than member types, it is not safe (and often will not work) to define subclasses of BGL graph types; those types may be missing important traits and properties that were defined externally to the class definition.
  template <typename Graph>
  struct graph_traits {
    typedef typename Graph::vertex_descriptor      vertex_descriptor;
    typedef typename Graph::edge_descriptor        edge_descriptor;
    typedef typename Graph::adjacency_iterator     adjacency_iterator;
    typedef typename Graph::out_edge_iterator      out_edge_iterator;
    typedef typename Graph::in_edge_iterator       in_edge_iterator;
    typedef typename Graph::vertex_iterator        vertex_iterator;
    typedef typename Graph::edge_iterator          edge_iterator;
    typedef typename Graph::directed_category      directed_category;
    typedef typename Graph::edge_parallel_category edge_parallel_category;
    typedef typename Graph::traversal_category     traversal_category;
    typedef typename Graph::vertices_size_type     vertices_size_type;
    typedef typename Graph::edges_size_type        edges_size_type;
    typedef typename Graph::degree_size_type       degree_size_type;
  };

Where Defined

boost/graph/graph_traits.hpp

Template Parameters

ParameterDescription
График Тип графа, к которому обращаются соответствующие типы.

Model of

DefaultConstructible and Assignable

Type Requirements

Members

MemberDescription
vertex_descriptor Тип для объектов, используемых для идентификации вершин на графике.
edge_descriptor Тип для объектов, используемых для идентификации краев в графе.
adjacency_iterator Тип итераторов, которые пересекают вершины, прилегающие к вершине.
out_edge_iterator Тип итераторов, которые проходят через край вершины.
in_edge_iterator Тип итераторов, которые проходят через края вершины.
vertex_iterator Тип итераторов, которые проходят через полный набор вершин графа.
edge_iterator Тип итераторов, которые проходят через полный край графа.
направленная_категория Это говорит о том, является ли граф ненаправленнымundirected_tagили направленнымDirect_tag.
edge_parallel_category Это говорит о том, позволяет ли граф вставлять параллельные края (let_parallel_edge_tag) или автоматически удаляет параллельные края (disallow_parallel_edge_tag).
traversal_category Способы, которыми вершины в графе могут быть пройдены. Метки категорий прохождения:incidence_graph_tag, adjacency_graph_tag, bidirectional_graph_tag, vertex_list_graph_tag, edge_list_graph_tag, vertex_and_edge_list_graph_tag, adjacency_matrix_tag. Вы также можете создать свой собственный тег, который должен унаследовать от одного из вышеперечисленных.
vertices_size_type Неподписанный целочисленный тип, используемый для представления числа вершин на графике.
edges_size_type Неподписанный целочисленный тип, используемый для представления числа края в графе.
Степень_size_type Неподписанный целочисленный тип, используемый для представления степени вершин на графике.


Copyright © 2000-2001Джереми Сик, Университет Индианыjsiek@osl.iu.edu]
Ли-Куан Ли, Университет Индианыllee@cs.indiana.edu]
Эндрю Лумсдейн, Университет Индианыlums@osl.iu.edu

Статья Boost Graph Library: Graph Traits раздела может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

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