|
GraphDom
|
Every labeled-edge non-mixed 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_edge_non_mixed_graph.h>


Public Member Functions | |
| labeled_edge_non_mixed_graph (const EdgeLabellerType &edge_labeller) | |
| labeled_edge_non_mixed_graph (EdgeLabellerType &&edge_labeller) | |
| ~labeled_edge_non_mixed_graph () override=default | |
| To be polymorphic, this class has a virtual destructor. | |
| constexpr const EdgeLabellerType & | get_edges_labeller () const |
| void | insert_edge (const typename graph< VertexType >::vertex_const_handle &first_endpoint, const typename graph< VertexType >::vertex_const_handle &second_endpoint) final |
| virtual void | insert_edge (const typename graph< VertexType >::vertex_const_handle &first_endpoint, const typename graph< VertexType >::vertex_const_handle &second_endpoint, const EdgeLabelType &edge_label)=0 |
| virtual void | insert_edge (const typename graph< VertexType >::vertex_const_handle &first_endpoint, const typename graph< VertexType >::vertex_const_handle &second_endpoint, EdgeLabelType &&edge_label)=0 |
| Public Member Functions inherited from graphdom::labeled_edge_graph< VertexType, EdgeLabelType > | |
| ~labeled_edge_graph () override=default | |
| To be polymorphic, this class has a virtual destructor. | |
| virtual const EdgeLabelType & | get_edge_label (const typename graph< VertexType >::adj_list_const_iterator &) const =0 |
| virtual EdgeLabelType & | get_edge_label (const typename graph< VertexType >::adj_list_const_iterator &)=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::non_mixed_graph< VertexType > | |
| ~non_mixed_graph () override=default | |
| To be polymorphic, this class has a virtual destructor. | |
Every labeled-edge non-mixed 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.
|
finalvirtual |
If *this is an ugraph then inserts in *this an undirected edge having first_endpoint, second_endpoint as endpoints, if *this doesn't already contain the same edge.
If *this is a digraph then inserts in *this a directed edge having first_endpoint as tail and second_endpoint as head, if *this doesn't already contain the same edge.
If and as soon as the insertion took place, the label of the inserted edge is equal to ( this->get_edges_labeller() )()
| first_endpoint | This handle must be valid and must identify a vertex belonging to *this, otherwise the insertion will cause undefined behavior. |
| second_endpoint | This handle must be valid and must identify a vertex belonging to *this, otherwise the insertion will cause undefined behavior. |
Implements graphdom::non_mixed_graph< VertexType >.
|
pure virtual |
If *this is an ugraph then inserts in *this an undirected edge having first_endpoint, second_endpoint as endpoints, if *this doesn't already contain the same edge.
If *this is a digraph then inserts in *this a directed edge having first_endpoint as tail and second_endpoint as head, if *this doesn't already contain the same edge.
If and as soon as the insertion took place, the label of the inserted edge is equal to edge_label .
| first_endpoint | This handle must be valid and must identify a vertex belonging to *this, otherwise the insertion will cause undefined behavior. |
| second_endpoint | This handle must be valid and must identify a vertex belonging to *this, otherwise the insertion will cause undefined behavior. |
| edge_label | If and as soon as the insertion took place, the label of the inserted edge is equal to edge_label . |
Implemented in graphdom::full_labeled_multiset_digraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >, graphdom::full_labeled_multiset_ugraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >, graphdom::full_labeled_set_digraph< VertexType, VertexLabelType, EdgeLabelType, Compare, VertexLabellerType, EdgeLabellerType >, and graphdom::full_labeled_set_ugraph< VertexType, VertexLabelType, EdgeLabelType, Compare, VertexLabellerType, EdgeLabellerType >.
|
pure virtual |
If *this is an ugraph then inserts in *this an undirected edge having first_endpoint, second_endpoint as endpoints, if *this doesn't already contain the same edge.
If *this is a digraph then inserts in *this a directed edge having first_endpoint as tail and second_endpoint as head, if *this doesn't already contain the same edge.
If and as soon as the insertion took place, the label of the inserted edge is equal to edge_label .
If the insertion did not take place, edge_label remains unchanged.
| first_endpoint | This handle must be valid and must identify a vertex belonging to *this, otherwise the insertion will cause undefined behavior. |
| second_endpoint | This handle must be valid and must identify a vertex belonging to *this, otherwise the insertion will cause undefined behavior. |
| edge_label | If and as soon as the insertion took place, the label of the inserted edge is equal to edge_label . |
Implemented in graphdom::full_labeled_multiset_digraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >, graphdom::full_labeled_multiset_ugraph< VertexType, VertexLabelType, EdgeLabelType, VertexLabellerType, EdgeLabellerType >, graphdom::full_labeled_set_digraph< VertexType, VertexLabelType, EdgeLabelType, Compare, VertexLabellerType, EdgeLabellerType >, and graphdom::full_labeled_set_ugraph< VertexType, VertexLabelType, EdgeLabelType, Compare, VertexLabellerType, EdgeLabellerType >.