GraphDom
Loading...
Searching...
No Matches
graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType > Class Template Referenceabstract

Every labeled-vertex multiset graph created using this library is an instance of a concrete class publicly derived, directly or indirectly, from this polymorphic template class. More...

#include <labeled_vertex_multiset_graph.h>

Inheritance diagram for graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType >:
Collaboration diagram for graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType >:

Public Member Functions

 labeled_vertex_multiset_graph (const VertexLabellerType &)
 labeled_vertex_multiset_graph (VertexLabellerType &&)
 ~labeled_vertex_multiset_graph () override=default
 To be polymorphic, this class has a virtual destructor.
constexpr const VertexLabellerType & get_vertices_labeller () const
multiset_graph< VertexType >::vertex_handle insert_vertex (const VertexType &v_core) final
multiset_graph< VertexType >::vertex_handle insert_vertex (VertexType &&v_core) final
virtual multiset_graph< VertexType >::vertex_handle insert_vertex (const VertexType &v_core, const VertexLabelType &vertex_label)=0
virtual multiset_graph< VertexType >::vertex_handle insert_vertex (const VertexType &v_core, VertexLabelType &&vertex_label)=0
virtual multiset_graph< VertexType >::vertex_handle insert_vertex (VertexType &&v_core, const VertexLabelType &vertex_label)=0
virtual multiset_graph< VertexType >::vertex_handle insert_vertex (VertexType &&v_core, VertexLabelType &&vertex_label)=0
Public Member Functions inherited from graphdom::labeled_vertex_graph< VertexType, VertexLabelType >
 ~labeled_vertex_graph () override=default
 To be polymorphic, this class has a virtual destructor.
virtual const VertexLabelType & get_vertex_label (const typename graph< VertexType >::vertex_const_handle &vertex) const =0
virtual VertexLabelType & get_vertex_label (const typename graph< VertexType >::vertex_const_handle &vertex)=0
Public Member Functions inherited from graphdom::graph< VertexType >
virtual ~graph ()=default
 To be polymorphic, this class has a virtual destructor.
virtual std::size_t order () const =0
 Returns the order of *this, i.e. the number of vertices inside the graph.
virtual void erase_vertex (const vertex_const_handle &vertex)=0
 Removes the vertex identified by vertex.
virtual adj_list_iterator erase_edge (const adj_list_const_iterator &)=0
Public Member Functions inherited from graphdom::multiset_graph< VertexType >
 ~multiset_graph () override=default
 To be polymorphic, this class has a virtual destructor.

Detailed Description

template<typename VertexType, typename VertexLabelType, typename VertexLabellerType = default_vertex_labeller<VertexType,VertexLabelType>>
class graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType >

Every labeled-vertex multiset graph created using this library is an instance of a concrete class publicly derived, directly or indirectly, from this polymorphic template class.

Creating an object of a user-defined class derived, directly or indirectly, from this one will cause undefined behavior.

Member Function Documentation

◆ insert_vertex() [1/6]

template<typename VertexType, typename VertexLabelType, typename VertexLabellerType>
graphdom::multiset_graph< VertexType >::vertex_handle graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType >::insert_vertex ( const VertexType & v_core)
nodiscardfinalvirtual

Inserts in *this a vertex having v_core as core and ( this->get_vertices_labeller() )() as label.

Parameters
v_core
Returns
A valid handle of the inserted vertex.

Implements graphdom::multiset_graph< VertexType >.

◆ insert_vertex() [2/6]

template<typename VertexType, typename VertexLabelType, typename VertexLabellerType = default_vertex_labeller<VertexType,VertexLabelType>>
virtual multiset_graph< VertexType >::vertex_handle graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType >::insert_vertex ( const VertexType & v_core,
const VertexLabelType & vertex_label )
nodiscardpure virtual

Inserts in *this a vertex having v_core as core and vertex_label as label.

Parameters
v_core
vertex_labelThe label of the inserted vertex is equal to vertex_label .
Returns
A valid handle of the inserted vertex.

Implemented in graphdom::full_labeled_multiset_digraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >, and graphdom::full_labeled_multiset_ugraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >.

◆ insert_vertex() [3/6]

template<typename VertexType, typename VertexLabelType, typename VertexLabellerType = default_vertex_labeller<VertexType,VertexLabelType>>
virtual multiset_graph< VertexType >::vertex_handle graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType >::insert_vertex ( const VertexType & v_core,
VertexLabelType && vertex_label )
nodiscardpure virtual

Inserts in *this a vertex having v_core as core and vertex_label as label.

Parameters
v_core
vertex_labelThe label of the inserted vertex is equal to vertex_label .
Returns
A valid handle of the inserted vertex.

Implemented in graphdom::full_labeled_multiset_digraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >, and graphdom::full_labeled_multiset_ugraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >.

◆ insert_vertex() [4/6]

template<typename VertexType, typename VertexLabelType, typename VertexLabellerType>
graphdom::multiset_graph< VertexType >::vertex_handle graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType >::insert_vertex ( VertexType && v_core)
nodiscardfinalvirtual

Inserts in *this a vertex having v_core as core and ( this->get_vertices_labeller() )() as label.

Parameters
v_core
Returns
A valid handle of the inserted vertex.

Implements graphdom::multiset_graph< VertexType >.

◆ insert_vertex() [5/6]

template<typename VertexType, typename VertexLabelType, typename VertexLabellerType = default_vertex_labeller<VertexType,VertexLabelType>>
virtual multiset_graph< VertexType >::vertex_handle graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType >::insert_vertex ( VertexType && v_core,
const VertexLabelType & vertex_label )
nodiscardpure virtual

Inserts in *this a vertex having v_core as core and vertex_label as label.

Parameters
v_core
vertex_labelThe label of the inserted vertex is equal to vertex_label .
Returns
A valid handle of the inserted vertex.

Implemented in graphdom::full_labeled_multiset_digraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >, and graphdom::full_labeled_multiset_ugraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >.

◆ insert_vertex() [6/6]

template<typename VertexType, typename VertexLabelType, typename VertexLabellerType = default_vertex_labeller<VertexType,VertexLabelType>>
virtual multiset_graph< VertexType >::vertex_handle graphdom::labeled_vertex_multiset_graph< VertexType, VertexLabelType, VertexLabellerType >::insert_vertex ( VertexType && v_core,
VertexLabelType && vertex_label )
nodiscardpure virtual

Inserts in *this a vertex having v_core as core and vertex_label as label.

Parameters
v_core
vertex_labelThe label of the inserted vertex is equal to vertex_label .
Returns
A valid handle of the inserted vertex.

Implemented in graphdom::full_labeled_multiset_digraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >, and graphdom::full_labeled_multiset_ugraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >.


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