Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::undirected_graph< VertexProp, EdgeProp, GraphProp > Class Template Reference

The undirected_graph class template is a simplified version of the BGL adjacency list. More...

#include <undirected_graph.hpp>

Public Types

typedef GraphProp graph_property_type
 
typedef VertexProp vertex_property_type
 
typedef EdgeProp edge_property_type
 
typedef lookup_one_property
< GraphProp, graph_bundle_t >
::type 
graph_bundled
 
typedef lookup_one_property
< VertexProp, vertex_bundle_t >
::type 
vertex_bundled
 
typedef lookup_one_property
< EdgeProp, edge_bundle_t >
::type 
edge_bundled
 
typedef property
< vertex_index_t, unsigned,
vertex_property_type
internal_vertex_property
 
typedef property< edge_index_t,
unsigned, edge_property_type
internal_edge_property
 
typedef adjacency_list< listS,
listS, undirectedS,
internal_vertex_property,
internal_edge_property,
GraphProp, listS
graph_type
 
typedef graph_type::stored_vertex stored_vertex
 
typedef
graph_type::vertices_size_type 
vertices_size_type
 
typedef graph_type::edges_size_type edges_size_type
 
typedef
graph_type::degree_size_type 
degree_size_type
 
typedef
graph_type::vertex_descriptor 
vertex_descriptor
 
typedef graph_type::edge_descriptor edge_descriptor
 
typedef graph_type::vertex_iterator vertex_iterator
 
typedef graph_type::edge_iterator edge_iterator
 
typedef
graph_type::out_edge_iterator 
out_edge_iterator
 
typedef
graph_type::in_edge_iterator 
in_edge_iterator
 
typedef
graph_type::adjacency_iterator 
adjacency_iterator
 
typedef undirected_graph_tag graph_tag
 
typedef
graph_type::directed_category 
directed_category
 
typedef
graph_type::edge_parallel_category 
edge_parallel_category
 
typedef
graph_type::traversal_category 
traversal_category
 
typedef std::size_t vertex_index_type
 
typedef std::size_t edge_index_type
 

Public Member Functions

 undirected_graph (GraphProp const &p=GraphProp())
 
 undirected_graph (undirected_graph const &x)
 
 undirected_graph (vertices_size_type n, GraphProp const &p=GraphProp())
 
template<typename EdgeIterator >
 undirected_graph (EdgeIterator f, EdgeIterator l, vertices_size_type n, edges_size_type m=0, GraphProp const &p=GraphProp())
 
undirected_graphoperator= (undirected_graph const &g)
 
graph_typeimpl ()
 
graph_type const & impl () const
 
vertices_size_type num_vertices () const
 
vertex_descriptor add_vertex ()
 
vertex_descriptor add_vertex (vertex_property_type const &p)
 
void clear_vertex (vertex_descriptor v)
 
void remove_vertex (vertex_descriptor v)
 
edges_size_type num_edges () const
 
std::pair< edge_descriptor, bool > add_edge (vertex_descriptor u, vertex_descriptor v)
 
std::pair< edge_descriptor, bool > add_edge (vertex_descriptor u, vertex_descriptor v, edge_property_type const &p)
 
void remove_edge (vertex_descriptor u, vertex_descriptor v)
 
void remove_edge (edge_iterator i)
 
void remove_edge (edge_descriptor e)
 
vertex_index_type max_vertex_index () const
 
void renumber_vertex_indices ()
 
void remove_vertex_and_renumber_indices (vertex_iterator i)
 
edge_index_type max_edge_index () const
 
void renumber_edge_indices ()
 
void remove_edge_and_renumber_indices (edge_iterator i)
 
void renumber_indices ()
 
vertex_bundledoperator[] (vertex_descriptor v)
 
vertex_bundled const & operator[] (vertex_descriptor v) const
 
edge_bundledoperator[] (edge_descriptor e)
 
edge_bundled const & operator[] (edge_descriptor e) const
 
graph_bundledoperator[] (graph_bundle_t)
 
graph_bundled const & operator[] (graph_bundle_t) const
 
void clear ()
 
void swap (undirected_graph &g)
 

Static Public Member Functions

static vertex_descriptor null_vertex ()
 

Detailed Description

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
class boost::undirected_graph< VertexProp, EdgeProp, GraphProp >

The undirected_graph class template is a simplified version of the BGL adjacency list.

This class is provided for ease of use, but may not perform as well as custom-defined adjacency list classes. Instances of this template model the VertexIndexGraph, and EdgeIndexGraph concepts. The graph is also fully mutable, supporting both insertions and removals of vertices and edges.

Note
Special care must be taken when removing vertices or edges since those operations can invalidate the numbering of vertices.

Member Typedef Documentation

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::adjacency_iterator boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::adjacency_iterator
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::degree_size_type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::degree_size_type
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::directed_category boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::directed_category
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef lookup_one_property<EdgeProp, edge_bundle_t>::type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::edge_bundled
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::edge_descriptor boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::edge_descriptor
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef std::size_t boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::edge_index_type
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::edge_iterator boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::edge_iterator
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::edge_parallel_category boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::edge_parallel_category
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef EdgeProp boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::edge_property_type
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::edges_size_type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::edges_size_type
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef lookup_one_property<GraphProp, graph_bundle_t>::type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::graph_bundled
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef GraphProp boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::graph_property_type
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef undirected_graph_tag boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::graph_tag
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef adjacency_list<listS, listS, undirectedS, internal_vertex_property, internal_edge_property, GraphProp, listS> boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::graph_type
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::in_edge_iterator boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::in_edge_iterator
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef property<edge_index_t, unsigned, edge_property_type> boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::internal_edge_property
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef property<vertex_index_t, unsigned, vertex_property_type> boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::internal_vertex_property
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::out_edge_iterator boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::out_edge_iterator
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::stored_vertex boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::stored_vertex
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::traversal_category boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::traversal_category
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef lookup_one_property<VertexProp, vertex_bundle_t>::type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::vertex_bundled
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::vertex_descriptor boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::vertex_descriptor
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef std::size_t boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::vertex_index_type
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::vertex_iterator boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::vertex_iterator
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef VertexProp boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::vertex_property_type
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
typedef graph_type::vertices_size_type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::vertices_size_type

Constructor & Destructor Documentation

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::undirected_graph ( GraphProp const &  p = GraphProp())
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::undirected_graph ( undirected_graph< VertexProp, EdgeProp, GraphProp > const &  x)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::undirected_graph ( vertices_size_type  n,
GraphProp const &  p = GraphProp() 
)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
template<typename EdgeIterator >
boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::undirected_graph ( EdgeIterator  f,
EdgeIterator  l,
vertices_size_type  n,
edges_size_type  m = 0,
GraphProp const &  p = GraphProp() 
)
inline

Member Function Documentation

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
std::pair<edge_descriptor, bool> boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::add_edge ( vertex_descriptor  u,
vertex_descriptor  v 
)
inline

References boost::add_edge().

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
std::pair<edge_descriptor, bool> boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::add_edge ( vertex_descriptor  u,
vertex_descriptor  v,
edge_property_type const &  p 
)
inline

References boost::add_edge().

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
vertex_descriptor boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::add_vertex ( )
inline

References boost::add_vertex().

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
vertex_descriptor boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::add_vertex ( vertex_property_type const &  p)
inline

References boost::add_vertex().

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::clear ( )
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::clear_vertex ( vertex_descriptor  v)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
graph_type& boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::impl ( )
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
graph_type const& boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::impl ( ) const
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
edge_index_type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::max_edge_index ( ) const
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
vertex_index_type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::max_vertex_index ( ) const
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
static vertex_descriptor boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::null_vertex ( )
inlinestatic
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
edges_size_type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::num_edges ( ) const
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
vertices_size_type boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::num_vertices ( ) const
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
undirected_graph& boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::operator= ( undirected_graph< VertexProp, EdgeProp, GraphProp > const &  g)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
vertex_bundled& boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::operator[] ( vertex_descriptor  v)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
vertex_bundled const& boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::operator[] ( vertex_descriptor  v) const
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
edge_bundled& boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::operator[] ( edge_descriptor  e)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
edge_bundled const& boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::operator[] ( edge_descriptor  e) const
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
graph_bundled& boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::operator[] ( graph_bundle_t  )
inline

References boost::get_property().

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
graph_bundled const& boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::operator[] ( graph_bundle_t  ) const
inline

References boost::get_property().

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::remove_edge ( vertex_descriptor  u,
vertex_descriptor  v 
)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::remove_edge ( edge_iterator  i)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::remove_edge ( edge_descriptor  e)
inline

References boost::remove_edge().

template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::remove_edge_and_renumber_indices ( edge_iterator  i)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::remove_vertex ( vertex_descriptor  v)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::remove_vertex_and_renumber_indices ( vertex_iterator  i)
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::renumber_edge_indices ( )
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::renumber_indices ( )
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::renumber_vertex_indices ( )
inline
template<typename VertexProp = no_property, typename EdgeProp = no_property, typename GraphProp = no_property>
void boost::undirected_graph< VertexProp, EdgeProp, GraphProp >::swap ( undirected_graph< VertexProp, EdgeProp, GraphProp > &  g)
inline

The documentation for this class was generated from the following file: