GraphDom
Loading...
Searching...
No Matches
multiset_graph_adj_list_iterator.h
1/*
2 * Copyright 2026 Michele Comparini
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef GRAPHDOM_MULTISET_GRAPH_ADJ_LIST_ITERATOR_H
8#define GRAPHDOM_MULTISET_GRAPH_ADJ_LIST_ITERATOR_H
9
10#include "../graph.h"
11#include "adj_list_base_iterator.h"
12#include "../multiset_graph.h"
13
14namespace graphdom {
15 template <typename VertexType>
16 class multiset_graph<VertexType>::adj_list_iterator final : public graph<VertexType>::template adj_list_base_iterator<typename graph<VertexType>::vertex_container* > {
17 public:
18 adj_list_iterator() = default;
19 adj_list_iterator(const adj_list_iterator& other);
20 adj_list_iterator(const typename graph<VertexType>::adj_list_iterator& other);
21
22 ~adj_list_iterator() = default;
23
24 multiset_graph<VertexType>::vertex_handle operator->() const;
25 multiset_graph<VertexType>::vertex_handle operator*() const;
26
27 adj_list_iterator& operator=(const adj_list_iterator& other);
28 adj_list_iterator& operator++();
29 [[nodiscard]] adj_list_iterator operator++(int);
30
31 friend class graph<VertexType>::adj_list_const_iterator;
32 friend class graph<VertexType>::adj_list_iterator;
33 friend class multiset_graph<VertexType>::adj_list;
34 private:
35 adj_list_iterator( const typename graph<VertexType>::template adj_list_base_iterator<typename graph<VertexType>::vertex_container* >& other );
36 adj_list_iterator(
37 const graph<VertexType>* iterator_owner_pointer,
38 typename graph<VertexType>::graph_edges_type iterator_owner_graph_edges_type,
39 typename graph<VertexType>::vertex_container* edge_begin_point_vertex_container,
40 typename graph<VertexType>::edges_type_selection_type edges_type_restriction,
41 graphdom::edge_type inner_iterator_edge_current_type
42 );
43 adj_list_iterator(
44 const graph<VertexType>* iterator_owner_pointer,
45 typename graph<VertexType>::graph_edges_type iterator_owner_graph_edges_type,
46 typename graph<VertexType>::vertex_container* edge_begin_point_vertex_container,
47 typename graph<VertexType>::edges_type_selection_type edges_type_restriction,
48 graphdom::edge_type inner_iterator_edge_current_type,
49 const typename graph<VertexType>::template adj_set<typename graph<VertexType>::vertex_container*>::iterator& inner_iterator
50 );
51 };
52}
53
54#include "impl/multiset_graph_adj_list_iterator.h"
55
56#endif //GRAPHDOM_MULTISET_GRAPH_ADJ_LIST_ITERATOR_H
Every graph created using this library is an instance of a concrete class publicly derived,...
Definition graph.h:43
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