Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator > Class Template Reference

#include <adjacency_matrix.hpp>

Collaboration diagram for boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >:

Public Types

typedef GraphProperty graph_property_type
 
typedef lookup_one_property
< GraphProperty,
graph_bundle_t >::type 
graph_bundled
 
typedef VertexProperty vertex_property_type
 
typedef lookup_one_property
< VertexProperty,
vertex_bundle_t >::type 
vertex_bundled
 
typedef EdgeProperty edge_property_type
 
typedef lookup_one_property
< EdgeProperty, edge_bundle_t >
::type 
edge_bundled
 
typedef mpl::if_< typename
has_property
< edge_property_type >::type,
std::pair< bool,
edge_property_type >, char >
::type 
StoredEdge
 
typedef Allocator::template
rebind< StoredEdge >::other 
Alloc
 
typedef std::vector
< StoredEdge, Alloc
Matrix
 
typedef Matrix::iterator MatrixIter
 
typedef Matrix::size_type size_type
 
typedef Traits::vertex_descriptor vertex_descriptor
 
typedef Traits::edge_descriptor edge_descriptor
 
typedef Traits::directed_category directed_category
 
typedef
Traits::edge_parallel_category 
edge_parallel_category
 
typedef adj_matrix_traversal_tag traversal_category
 
typedef
detail::dir_adj_matrix_out_edge_iter
< vertex_descriptor,
MatrixIter, size_type,
edge_descriptor
DirOutEdgeIter
 
typedef
detail::undir_adj_matrix_out_edge_iter
< vertex_descriptor,
MatrixIter, size_type,
edge_descriptor
UnDirOutEdgeIter
 
typedef mpl::if_< typename
Directed::is_directed_t,
DirOutEdgeIter,
UnDirOutEdgeIter >::type 
unfiltered_out_edge_iter
 
typedef
detail::dir_adj_matrix_in_edge_iter
< vertex_descriptor,
MatrixIter, size_type,
edge_descriptor
DirInEdgeIter
 
typedef
detail::undir_adj_matrix_in_edge_iter
< vertex_descriptor,
MatrixIter, size_type,
edge_descriptor
UnDirInEdgeIter
 
typedef mpl::if_< typename
Directed::is_directed_t,
DirInEdgeIter, UnDirInEdgeIter >
::type 
unfiltered_in_edge_iter
 
typedef
detail::adj_matrix_edge_iter
< Directed, MatrixIter,
size_type, edge_descriptor
unfiltered_edge_iter
 
typedef filter_iterator
< detail::does_edge_exist,
unfiltered_out_edge_iter
out_edge_iterator
 
typedef size_type degree_size_type
 
typedef filter_iterator
< detail::does_edge_exist,
unfiltered_in_edge_iter
in_edge_iterator
 
typedef
adjacency_iterator_generator
< self, vertex_descriptor,
out_edge_iterator >::type 
adjacency_iterator
 
typedef size_type vertices_size_type
 
typedef integer_range
< vertex_descriptor
VertexList
 
typedef VertexList::iterator vertex_iterator
 
typedef size_type edges_size_type
 
typedef filter_iterator
< detail::does_edge_exist,
unfiltered_edge_iter
edge_iterator
 
typedef adjacency_matrix_class_tag graph_tag
 

Public Member Functions

 BOOST_STATIC_ASSERT (!(is_same< Directed, bidirectionalS >::value))
 
 adjacency_matrix (vertices_size_type n_vertices, const GraphProperty &p=GraphProperty())
 
template<typename EdgeIterator >
 adjacency_matrix (EdgeIterator first, EdgeIterator last, vertices_size_type n_vertices, const GraphProperty &p=GraphProperty())
 
template<typename EdgeIterator , typename EdgePropertyIterator >
 adjacency_matrix (EdgeIterator first, EdgeIterator last, EdgePropertyIterator ep_iter, vertices_size_type n_vertices, const GraphProperty &p=GraphProperty())
 
vertex_bundledoperator[] (vertex_descriptor v)
 
const vertex_bundledoperator[] (vertex_descriptor v) const
 
edge_bundledoperator[] (edge_descriptor e)
 
const edge_bundledoperator[] (edge_descriptor e) const
 
graph_bundledoperator[] (graph_bundle_t)
 
const graph_bundledoperator[] (graph_bundle_t) const
 
Matrix::const_reference get_edge (vertex_descriptor u, vertex_descriptor v) const
 
Matrix::reference get_edge (vertex_descriptor u, vertex_descriptor v)
 

Static Public Member Functions

static vertex_descriptor null_vertex ()
 

Public Attributes

Matrix m_matrix
 
VertexList m_vertex_set
 
std::vector< vertex_property_typem_vertex_properties
 
size_type m_num_edges
 
graph_property_type m_property
 

Member Typedef Documentation

template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef adjacency_iterator_generator<self, vertex_descriptor, out_edge_iterator>::type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::adjacency_iterator
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef Allocator::template rebind<StoredEdge>::other boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::Alloc
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef size_type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::degree_size_type
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef Traits::directed_category boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::directed_category
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef detail::dir_adj_matrix_in_edge_iter< vertex_descriptor, MatrixIter, size_type, edge_descriptor > boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::DirInEdgeIter
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef detail::dir_adj_matrix_out_edge_iter< vertex_descriptor, MatrixIter, size_type, edge_descriptor > boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::DirOutEdgeIter
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef lookup_one_property<EdgeProperty, edge_bundle_t>::type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::edge_bundled
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef Traits::edge_descriptor boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::edge_descriptor
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef filter_iterator< detail::does_edge_exist, unfiltered_edge_iter > boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::edge_iterator
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef Traits::edge_parallel_category boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::edge_parallel_category
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef EdgeProperty boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::edge_property_type
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef size_type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::edges_size_type
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef lookup_one_property<GraphProperty, graph_bundle_t>::type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::graph_bundled
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef GraphProperty boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::graph_property_type
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef adjacency_matrix_class_tag boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::graph_tag
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef filter_iterator<detail::does_edge_exist, unfiltered_in_edge_iter> boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::in_edge_iterator
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef std::vector<StoredEdge, Alloc> boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::Matrix
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef Matrix::iterator boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::MatrixIter
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef filter_iterator<detail::does_edge_exist, unfiltered_out_edge_iter> boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::out_edge_iterator
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef Matrix::size_type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::size_type
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef mpl::if_<typename has_property<edge_property_type>::type, std::pair<bool, edge_property_type>, char>::type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::StoredEdge
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef adj_matrix_traversal_tag boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::traversal_category
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef detail::undir_adj_matrix_in_edge_iter< vertex_descriptor, MatrixIter, size_type, edge_descriptor > boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::UnDirInEdgeIter
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef detail::undir_adj_matrix_out_edge_iter< vertex_descriptor, MatrixIter, size_type, edge_descriptor > boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::UnDirOutEdgeIter
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef detail::adj_matrix_edge_iter< Directed, MatrixIter, size_type, edge_descriptor > boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::unfiltered_edge_iter
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef mpl::if_< typename Directed::is_directed_t, DirInEdgeIter, UnDirInEdgeIter >::type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::unfiltered_in_edge_iter
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef mpl::if_< typename Directed::is_directed_t, DirOutEdgeIter, UnDirOutEdgeIter >::type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::unfiltered_out_edge_iter
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef lookup_one_property<VertexProperty, vertex_bundle_t>::type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::vertex_bundled
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef Traits::vertex_descriptor boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::vertex_descriptor
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef VertexList::iterator boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::vertex_iterator
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef VertexProperty boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::vertex_property_type
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef integer_range<vertex_descriptor> boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::VertexList
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
typedef size_type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::vertices_size_type

Constructor & Destructor Documentation

template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::adjacency_matrix ( vertices_size_type  n_vertices,
const GraphProperty &  p = GraphProperty() 
)
inline
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
template<typename EdgeIterator >
boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::adjacency_matrix ( EdgeIterator  first,
EdgeIterator  last,
vertices_size_type  n_vertices,
const GraphProperty &  p = GraphProperty() 
)
inline
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
template<typename EdgeIterator , typename EdgePropertyIterator >
boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::adjacency_matrix ( EdgeIterator  first,
EdgeIterator  last,
EdgePropertyIterator  ep_iter,
vertices_size_type  n_vertices,
const GraphProperty &  p = GraphProperty() 
)
inline

Member Function Documentation

template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::BOOST_STATIC_ASSERT ( is_same< Directed, bidirectionalS >::value)
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
Matrix::const_reference boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::get_edge ( vertex_descriptor  u,
vertex_descriptor  v 
) const
inline
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
Matrix::reference boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::get_edge ( vertex_descriptor  u,
vertex_descriptor  v 
)
inline
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
static vertex_descriptor boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::null_vertex ( )
inlinestatic
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
vertex_bundled& boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::operator[] ( vertex_descriptor  v)
inline

References boost::vertex_bundle.

template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
const vertex_bundled& boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::operator[] ( vertex_descriptor  v) const
inline

References boost::vertex_bundle.

template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
edge_bundled& boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::operator[] ( edge_descriptor  e)
inline

References boost::edge_bundle.

template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
const edge_bundled& boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::operator[] ( edge_descriptor  e) const
inline

References boost::edge_bundle.

template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
graph_bundled& boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::operator[] ( graph_bundle_t  )
inline

References boost::get_property().

template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
const graph_bundled& boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::operator[] ( graph_bundle_t  ) const
inline

References boost::get_property().

Member Data Documentation

template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
Matrix boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::m_matrix
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
size_type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::m_num_edges
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
graph_property_type boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::m_property
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
std::vector<vertex_property_type> boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::m_vertex_properties
template<typename Directed = directedS, typename VertexProperty = no_property, typename EdgeProperty = no_property, typename GraphProperty = no_property, typename Allocator = std::allocator<bool>>
VertexList boost::adjacency_matrix< Directed, VertexProperty, EdgeProperty, GraphProperty, Allocator >::m_vertex_set

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