Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
labeled_graph.hpp File Reference
#include <boost/config.hpp>
#include <vector>
#include <map>
#include <boost/static_assert.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/unordered_map.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/type_traits/is_unsigned.hpp>
#include <boost/pending/container_traits.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/detail/labeled_graph_traits.hpp>
Include dependency graph for labeled_graph.hpp:

Classes

struct  boost::defaultS
 
struct  boost::graph_detail::is_default< Selector >
 Returns true if the selector is the default selector. More...
 
struct  boost::graph_detail::choose_default_map< Label, Vertex >
 Choose the default map instance. More...
 
struct  boost::graph_detail::generate_label_map< Selector, Label, Vertex >
 
struct  boost::graph_detail::generate_label_map< vecS, Label, Vertex >
 
struct  boost::graph_detail::generate_label_map< mapS, Label, Vertex >
 
struct  boost::graph_detail::generate_label_map< multimapS, Label, Vertex >
 
struct  boost::graph_detail::generate_label_map< hash_mapS, Label, Vertex >
 
struct  boost::graph_detail::generate_label_map< hash_multimapS, Label, Vertex >
 
struct  boost::graph_detail::choose_custom_map< Selector, Label, Vertex >
 
struct  boost::graph_detail::choose_map< Selector, Label, Vertex >
 Choose and instantiate an "associative" container. More...
 
struct  boost::labeled_graph_class_tag
 
struct  boost::labeled_graph_types< Graph, Label, Selector >
 
class  boost::labeled_graph< Graph, Label, Selector >
 The labeled_graph class is a graph adaptor that maintains a mapping between vertex labels and vertex descriptors. More...
 
class  boost::labeled_graph< Graph *, Label, Selector >
 The partial specialization over graph pointers allows the construction of temporary labeled graph objects. More...
 
struct  boost::graph_detail::labeled_graph_vertex_property_selector
 
struct  boost::graph_detail::labeled_graph_vertex_property_selector::bind_< LabeledGraph, Property, Tag >
 
struct  boost::graph_detail::labeled_graph_edge_property_selector
 
struct  boost::graph_detail::labeled_graph_edge_property_selector::bind_< LabeledGraph, Property, Tag >
 
struct  boost::vertex_property_selector< labeled_graph_class_tag >
 
struct  boost::edge_property_selector< labeled_graph_class_tag >
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::graph_detail
 

Macros

#define LABELED_GRAPH_PARAMS   typename G, typename L, typename S
 
#define LABELED_GRAPH   labeled_graph<G,L,S>
 

Functions

Insert Labeled Vertex
template<typename Container , typename Graph , typename Label , typename Prop >
std::pair< typename
graph_traits< Graph >
::vertex_descriptor, bool > 
boost::graph_detail::insert_labeled_vertex (Container &c, Graph &g, Label const &l, Prop const &p, random_access_container_tag)
 
template<typename Container , typename Graph , typename Label , typename Prop >
std::pair< typename
graph_traits< Graph >
::vertex_descriptor, bool > 
boost::graph_detail::insert_labeled_vertex (Container &c, Graph &g, Label const &l, Prop const &p, multiple_associative_container_tag const &)
 
template<typename Container , typename Graph , typename Label , typename Prop >
std::pair< typename
graph_traits< Graph >
::vertex_descriptor, bool > 
boost::graph_detail::insert_labeled_vertex (Container &c, Graph &g, Label const &l, Prop const &p, unique_associative_container_tag)
 
template<typename Container , typename Graph , typename Label , typename Prop >
std::pair< typename
graph_traits< Graph >
::vertex_descriptor, bool > 
boost::graph_detail::insert_labeled_vertex (Container &c, Graph &g, Label const &l, Prop const &p)
 
Find Labeled Vertex
template<typename Container , typename Graph , typename Label >
graph_traits< Graph >
::vertex_descriptor 
boost::graph_detail::find_labeled_vertex (Container const &c, Graph const &, Label const &l, random_access_container_tag)
 
template<typename Container , typename Graph , typename Label >
graph_traits< Graph >
::vertex_descriptor 
boost::graph_detail::find_labeled_vertex (Container const &c, Graph const &, Label const &l, associative_container_tag)
 
template<typename Container , typename Graph , typename Label >
graph_traits< Graph >
::vertex_descriptor 
boost::graph_detail::find_labeled_vertex (Container const &c, Graph const &g, Label const &l)
 
Put Vertex Label
template<typename Container , typename Label , typename Graph , typename Vertex >
bool boost::graph_detail::put_vertex_label (Container &c, Graph const &, Label const &l, Vertex v, random_access_container_tag)
 
template<typename Container , typename Label , typename Graph , typename Vertex >
bool boost::graph_detail::put_vertex_label (Container &c, Graph const &, Label const &l, Vertex v, unique_associative_container_tag)
 
template<typename Container , typename Label , typename Graph , typename Vertex >
bool boost::graph_detail::put_vertex_label (Container &c, Graph const &, Label const &l, Vertex v, multiple_associative_container_tag)
 
template<typename Container , typename Label , typename Graph , typename Vertex >
bool boost::graph_detail::put_vertex_label (Container &c, Graph const &g, Label const &l, Vertex v)
 
Labeled Graph
template<typename G , typename L , typename S >
bool boost::label_vertex (typename labeled_graph< G, L, S >::vertex_descriptor v, typename labeled_graph< G, L, S >::label_type const l, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::vertex_descriptor 
boost::vertex_by_label (typename labeled_graph< G, L, S >::label_type const l, labeled_graph< G, L, S > &g)
 
Graph
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::edge_descriptor, bool > 
boost::edge (typename labeled_graph< G, L, S >::vertex_descriptor const &u, typename labeled_graph< G, L, S >::vertex_descriptor const &v, labeled_graph< G, L, S > const &g)
 
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::edge_descriptor, bool > 
boost::edge_by_label (typename labeled_graph< G, L, S >::label_type const &u, typename labeled_graph< G, L, S >::label_type const &v, labeled_graph< G, L, S > const &g)
 
Incidence Graph
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::out_edge_iterator, typename
labeled_graph< G, L, S >
::out_edge_iterator > 
boost::out_edges (typename labeled_graph< G, L, S >::vertex_descriptor v, labeled_graph< G, L, S > const &g)
 
template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::degree_size_type 
boost::out_degree (typename labeled_graph< G, L, S >::vertex_descriptor v, labeled_graph< G, L, S > const &g)
 
template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::vertex_descriptor 
boost::source (typename labeled_graph< G, L, S >::edge_descriptor e, labeled_graph< G, L, S > const &g)
 
template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::vertex_descriptor 
boost::target (typename labeled_graph< G, L, S >::edge_descriptor e, labeled_graph< G, L, S > const &g)
 
Bidirectional Graph
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::in_edge_iterator, typename
labeled_graph< G, L, S >
::in_edge_iterator > 
boost::in_edges (typename labeled_graph< G, L, S >::vertex_descriptor v, labeled_graph< G, L, S > const &g)
 
template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::degree_size_type 
boost::in_degree (typename labeled_graph< G, L, S >::vertex_descriptor v, labeled_graph< G, L, S > const &g)
 
template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::degree_size_type 
boost::degree (typename labeled_graph< G, L, S >::vertex_descriptor v, labeled_graph< G, L, S > const &g)
 
Adjacency Graph
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::adjacency_iterator, typename
labeled_graph< G, L, S >
::adjacency_iterator > 
boost::adjacenct_vertices (typename labeled_graph< G, L, S >::vertex_descriptor v, labeled_graph< G, L, S > const &g)
 
VertexListGraph
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::vertex_iterator, typename
labeled_graph< G, L, S >
::vertex_iterator > 
boost::vertices (labeled_graph< G, L, S > const &g)
 
template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::vertices_size_type 
boost::num_vertices (labeled_graph< G, L, S > const &g)
 
EdgeListGraph
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::edge_iterator, typename
labeled_graph< G, L, S >
::edge_iterator > 
boost::edges (labeled_graph< G, L, S > const &g)
 
template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::edges_size_type 
boost::num_edges (labeled_graph< G, L, S > const &g)
 
Property Graph
template<typename G , typename L , typename S , typename Prop >
property_map< labeled_graph< G,
L, S >, Prop >::type 
boost::get (Prop p, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S , typename Prop >
property_map< labeled_graph< G,
L, S >, Prop >::const_type 
boost::get (Prop p, labeled_graph< G, L, S > const &g)
 
template<typename G , typename L , typename S , typename Prop , typename Key >
property_traits< typename
property_map< typename
labeled_graph< G, L, S >
::graph_type, Prop >
::const_type >::value_type 
boost::get (Prop p, labeled_graph< G, L, S > const &g, const Key &k)
 
template<typename G , typename L , typename S , typename Prop , typename Key , typename Value >
void boost::put (Prop p, labeled_graph< G, L, S > &g, Key const &k, Value const &v)
 
Mutable Graph
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::edge_descriptor, bool > 
boost::add_edge (typename labeled_graph< G, L, S >::vertex_descriptor const &u, typename labeled_graph< G, L, S >::vertex_descriptor const &v, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::edge_descriptor, bool > 
boost::add_edge (typename labeled_graph< G, L, S >::vertex_descriptor const &u, typename labeled_graph< G, L, S >::vertex_descriptor const &v, typename labeled_graph< G, L, S >::edge_property_type const &p, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
void boost::clear_vertex (typename labeled_graph< G, L, S >::vertex_descriptor v, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
void boost::remove_edge (typename labeled_graph< G, L, S >::edge_descriptor e, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
void boost::remove_edge (typename labeled_graph< G, L, S >::vertex_descriptor u, typename labeled_graph< G, L, S >::vertex_descriptor v, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::edge_descriptor, bool > 
boost::add_edge_by_label (typename labeled_graph< G, L, S >::label_type const &u, typename labeled_graph< G, L, S >::label_type const &v, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
std::pair< typename
labeled_graph< G, L, S >
::edge_descriptor, bool > 
boost::add_edge_by_label (typename labeled_graph< G, L, S >::label_type const &u, typename labeled_graph< G, L, S >::label_type const &v, typename labeled_graph< G, L, S >::edge_property_type const &p, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
void boost::clear_vertex_by_label (typename labeled_graph< G, L, S >::label_type const &l, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
void boost::remove_edge_by_label (typename labeled_graph< G, L, S >::label_type const &u, typename labeled_graph< G, L, S >::label_type const &v, labeled_graph< G, L, S > &g)
 
Labeled Mutable Graph

The labeled mutable graph hides the add_ and remove_ vertex functions from the mutable graph concept.

Note that the remove_vertex is hidden because removing the vertex without its key could leave a dangling reference in the map.

template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::vertex_descriptor 
boost::add_vertex (typename labeled_graph< G, L, S >::label_type const &l, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
labeled_graph< G, L, S >
::vertex_descriptor 
boost::add_vertex (typename labeled_graph< G, L, S >::label_type const &l, typename labeled_graph< G, L, S >::vertex_property_type const &p, labeled_graph< G, L, S > &g)
 
template<typename G , typename L , typename S >
void boost::remove_vertex (typename labeled_graph< G, L, S >::label_type const &l, labeled_graph< G, L, S > &g)
 

Macro Definition Documentation

#define LABELED_GRAPH   labeled_graph<G,L,S>
#define LABELED_GRAPH_PARAMS   typename G, typename L, typename S