GraphDom
Toggle main menu visibility
Loading...
Searching...
No Matches
labeled_vertex_multiset_graph.h
1
/*
2
* Copyright 2026 Michele Comparini
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef GRAPHDOM_LABELED_VERTEX_MULTISET_GRAPH_H
8
#define GRAPHDOM_LABELED_VERTEX_MULTISET_GRAPH_H
9
10
#include <utility>
11
12
#include "labeled_vertex_graph.h"
13
14
namespace
graphdom
{
16
19
template
<
20
typename
VertexType,
21
typename
VertexLabelType,
22
typename
VertexLabellerType =
default_vertex_labeller<VertexType,VertexLabelType>
23
>
24
class
labeled_vertex_multiset_graph :
virtual
public
labeled_vertex_graph
<VertexType,VertexLabelType>,
virtual
public
multiset_graph
<VertexType> {
25
public
:
26
labeled_vertex_multiset_graph();
27
explicit
labeled_vertex_multiset_graph(
const
VertexLabellerType&);
28
explicit
labeled_vertex_multiset_graph(VertexLabellerType&&);
29
31
~labeled_vertex_multiset_graph
()
override
=
default
;
32
33
[[nodiscard]]
constexpr
const
VertexLabellerType& get_vertices_labeller()
const
;
34
35
using
multiset_graph
<VertexType>
::insert_vertex
;
36
43
[[nodiscard]]
typename
multiset_graph<VertexType>::vertex_handle
insert_vertex
(
const
VertexType& v_core)
final
;
44
51
[[nodiscard]]
typename
multiset_graph<VertexType>::vertex_handle
insert_vertex
(VertexType&& v_core)
final
;
52
60
[[nodiscard]]
virtual
typename
multiset_graph<VertexType>::vertex_handle
insert_vertex
(
const
VertexType& v_core,
const
VertexLabelType& vertex_label) = 0;
61
69
[[nodiscard]]
virtual
typename
multiset_graph<VertexType>::vertex_handle
insert_vertex
(
const
VertexType& v_core, VertexLabelType&& vertex_label) = 0;
70
78
[[nodiscard]]
virtual
typename
multiset_graph<VertexType>::vertex_handle
insert_vertex
(VertexType&& v_core,
const
VertexLabelType& vertex_label) = 0;
79
87
[[nodiscard]]
virtual
typename
multiset_graph<VertexType>::vertex_handle
insert_vertex
(VertexType&& v_core, VertexLabelType&& vertex_label) = 0;
88
private
:
89
VertexLabellerType vertices_labeller;
90
};
91
}
92
93
#include "impl/labeled_vertex_multiset_graph.h"
94
95
#endif
//GRAPHDOM_LABELED_VERTEX_MULTISET_GRAPH_H
graphdom::default_vertex_labeller
This class template is the default vertex labeller used by all labeled-vertex graphs if no user-speci...
Definition
labeled_vertex_graph.h:53
graphdom::labeled_vertex_graph
Every labeled-vertex graph created using this library is an instance of a concrete class publicly der...
Definition
labeled_vertex_graph.h:21
graphdom::labeled_vertex_multiset_graph::~labeled_vertex_multiset_graph
~labeled_vertex_multiset_graph() override=default
To be polymorphic, this class has a virtual destructor.
graphdom::labeled_vertex_multiset_graph::insert_vertex
virtual multiset_graph< VertexType >::vertex_handle insert_vertex(const VertexType &v_core, VertexLabelType &&vertex_label)=0
graphdom::labeled_vertex_multiset_graph::insert_vertex
virtual multiset_graph< VertexType >::vertex_handle insert_vertex(VertexType &&v_core, VertexLabelType &&vertex_label)=0
graphdom::labeled_vertex_multiset_graph::insert_vertex
virtual multiset_graph< VertexType >::vertex_handle insert_vertex(const VertexType &v_core, const VertexLabelType &vertex_label)=0
graphdom::labeled_vertex_multiset_graph::insert_vertex
multiset_graph< VertexType >::vertex_handle insert_vertex(const VertexType &v_core) final
Definition
labeled_vertex_multiset_graph.h:27
graphdom::labeled_vertex_multiset_graph::insert_vertex
virtual multiset_graph< VertexType >::vertex_handle insert_vertex(VertexType &&v_core, const VertexLabelType &vertex_label)=0
graphdom::multiset_graph::vertex_handle
Every valid instance of this class can be used to identify a specific vertex of a multiset graph and ...
Definition
multiset_graph_vertex_handle.h:31
graphdom::multiset_graph
Every multiset graph created using this library is an instance of a concrete class publicly derived,...
Definition
multiset_graph.h:19
graphdom
Definition
adj_list.h:16
include
graphdom
labeled_vertex_multiset_graph.h
Generated by
1.17.0