GraphDom
Loading...
Searching...
No Matches
multiset_graph_adj_list.h
1/*
2 * Copyright 2026 Michele Comparini
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef GRAPHDOM_MULTISET_GRAPH_ADJ_LIST_H
8#define GRAPHDOM_MULTISET_GRAPH_ADJ_LIST_H
9
10#include "../graph.h"
11#include "vertex_container.h"
12#include "base_adj_list.h"
13#include "../multiset_graph.h"
14
15namespace graphdom {
30 template <typename VertexType>
31 class multiset_graph<VertexType>::adj_list : public graph<VertexType>::template base_adj_list< typename graph<VertexType>::vertex_container* > {
32 public:
33 adj_list() = delete;
34 adj_list(const adj_list& other);
35 explicit adj_list(const typename graph<VertexType>::adj_list& other);
36
37 ~adj_list() = default;
38
39 adj_list& operator=(const adj_list&) = delete;
40 adj_list& operator=(adj_list&&) = delete;
41
42 [[nodiscard]] multiset_graph<VertexType>::adj_list_iterator begin() const;
43 [[nodiscard]] multiset_graph<VertexType>::adj_list_iterator end() const;
44 [[nodiscard]] typename graph<VertexType>::adj_list_const_iterator cbegin() const;
45 [[nodiscard]] typename graph<VertexType>::adj_list_const_iterator cend() const;
46
48 friend class graph<VertexType>::const_adj_list;
49 friend class graph<VertexType>::adj_list;
50 friend class multiset_graph<VertexType>::vertex_handle;
52 private:
53 adj_list(
54 const graph<VertexType>* adj_list_owner_graph_pointer,
55 typename graph<VertexType>::graph_edges_type adj_list_owner_graph_edges_type,
56 typename graph<VertexType>::vertex_container* adj_list_common_begin_point_vertex_container_pointer,
57 typename graph<VertexType>::edges_type_selection_type adj_list_edges_type_selection = graph<VertexType>::edges_type_selection_type::none
58 );
59 };
60}
61
62#include "impl/multiset_graph_adj_list.h"
63
64#endif //GRAPHDOM_MULTISET_GRAPH_ADJ_LIST_H
Every valid instance of this class is a "container-like and non-owning" handle to a subset of the set...
Definition adj_list.h:32
Every valid instance of this class is a "container-like and non-owning" handle to a subset of the set...
Definition const_adj_list.h:35
Every graph created using this library is an instance of a concrete class publicly derived,...
Definition graph.h:43
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
Every multiset graph created using this library is an instance of a concrete class publicly derived,...
Definition multiset_graph.h:19
Definition adj_list.h:16