alglib::graph::models::adj_matrix< vertex_t, edge_t > Class Template Reference

#include <adj_matrix.h>

Inheritance diagram for alglib::graph::models::adj_matrix< vertex_t, edge_t >:
alglib::graph::models::graph_model< vertex_t, edge_t >

Public Types

typedef vertex_t vertex_type
 
typedef edge_t edge_type
 
typedef alglib::bimap::bimap< vertex_t, int >::type1_iterator const_viterator
 

Public Member Functions

 adj_matrix ()=default
 
void add_vertex (const vertex_t &u)
 
void remove_vertex ()
 
int indeg (const vertex_t &u) const
 
int outdeg (const vertex_t &u) const
 
int num_vertices () const
 
int num_edges () const
 
const_viterator vbegin () const
 
const_viterator vend () const
 
- Public Member Functions inherited from alglib::graph::models::graph_model< vertex_t, edge_t >
virtual bool are_adj (const vertex_t &, const vertex_t &) const =0
 Returs true if the two given vertices are adjacent, false otherwise. More...
 
virtual void add_edge (const vertex_t &u, const vertex_t &v, const edge_t &a)=0
 
virtual void add_edge (const edge_t &a)=0
 
virtual void remove_vertex (const vertex_t &v)=0
 
virtual void remove_edge (const vertex_t &u, const vertex_t &v)=0
 

Member Typedef Documentation

template<typename vertex_t , typename edge_t >
typedef alglib::bimap::bimap<vertex_t, int>::type1_iterator alglib::graph::models::adj_matrix< vertex_t, edge_t >::const_viterator
template<typename vertex_t , typename edge_t >
typedef edge_t alglib::graph::models::adj_matrix< vertex_t, edge_t >::edge_type
template<typename vertex_t , typename edge_t >
typedef vertex_t alglib::graph::models::adj_matrix< vertex_t, edge_t >::vertex_type

Constructor & Destructor Documentation

template<typename vertex_t , typename edge_t >
alglib::graph::models::adj_matrix< vertex_t, edge_t >::adj_matrix ( )
default

Member Function Documentation

template<typename vertex_t , typename edge_t >
void alglib::graph::models::adj_matrix< vertex_t, edge_t >::add_vertex ( const vertex_t &  u)
inlinevirtual

Implements alglib::graph::models::graph_model< vertex_t, edge_t >.

76  {
77  vertex_to_int.insert(u, vsize++);
78  grow_matrix(vsize);
79  }
void insert(const type1 &elt1, const type2 &elt2)
Definition: bimap.h:104
template<typename vertex_t , typename edge_t >
int alglib::graph::models::adj_matrix< vertex_t, edge_t >::indeg ( const vertex_t &  u) const
inlinevirtual

Implements alglib::graph::models::graph_model< vertex_t, edge_t >.

83  {
84  return indeg_rec[vertex_to_int.get_image(u)];
85  }
const codomain_type & get_image(const domain_type &elt) const
Definition: bimap.h:120
template<typename vertex_t , typename edge_t >
int alglib::graph::models::adj_matrix< vertex_t, edge_t >::num_edges ( ) const
inlinevirtual
template<typename vertex_t , typename edge_t >
int alglib::graph::models::adj_matrix< vertex_t, edge_t >::num_vertices ( ) const
inlinevirtual

Implements alglib::graph::models::graph_model< vertex_t, edge_t >.

89  {
90  return vertex_to_int.size();
91  }
template<typename vertex_t , typename edge_t >
int alglib::graph::models::adj_matrix< vertex_t, edge_t >::outdeg ( const vertex_t &  u) const
inlinevirtual

Implements alglib::graph::models::graph_model< vertex_t, edge_t >.

86  {
87  return indeg_rec[vertex_to_int.get_image(u)];
88  }
const codomain_type & get_image(const domain_type &elt) const
Definition: bimap.h:120
template<typename vertex_t , typename edge_t >
void alglib::graph::models::adj_matrix< vertex_t, edge_t >::remove_vertex ( )
inline
81 {}
template<typename vertex_t , typename edge_t >
const_viterator alglib::graph::models::adj_matrix< vertex_t, edge_t >::vbegin ( ) const
inline
96  {
97  vertex_to_int.domain_begin();
98  }
domain_iterator domain_begin() const
Definition: bimap.h:182
template<typename vertex_t , typename edge_t >
const_viterator alglib::graph::models::adj_matrix< vertex_t, edge_t >::vend ( ) const
inline
99  {
100  return vertex_to_int.domain_end();
101  }
domain_iterator domain_end() const
Definition: bimap.h:188

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