7#ifndef GRAPHDOM_ADJ_LIST_ITERATOR_H
8#define GRAPHDOM_ADJ_LIST_ITERATOR_H
11#include "vertex_container.h"
12#include "adj_list_base_iterator.h"
13#include "../multiset_graph.h"
16 template <
typename VertexType>
17 class graph<VertexType>::adj_list_iterator final :
public graph<VertexType>::adj_list_base_iterator< const graph<VertexType>::vertex_container* > {
19 adj_list_iterator() =
default;
20 adj_list_iterator(
const adj_list_iterator& other_iterator);
21 adj_list_iterator(
const typename multiset_graph<VertexType>::adj_list_iterator& other_iterator);
23 ~adj_list_iterator() =
default;
25 operator typename multiset_graph<VertexType>::adj_list_iterator()
const;
26 graph<VertexType>::vertex_handle operator->()
const;
27 graph<VertexType>::vertex_handle operator*()
const;
29 adj_list_iterator& operator=(
const adj_list_iterator& other);
30 adj_list_iterator& operator++();
31 [[nodiscard]] adj_list_iterator operator++(
int);
34 friend class graph<VertexType>::adj_list_const_iterator;
35 friend class multiset_graph<VertexType>::adj_list_iterator;
36 friend class graph<VertexType>::adj_list;
37 friend class set_graph<VertexType>;
38 friend class multiset_graph<VertexType>;
41 adj_list_iterator( const graph<VertexType>::adj_list_base_iterator< const graph<VertexType>::vertex_container* >& other );
43 const graph<VertexType>* iterator_owner_pointer,
44 typename graph<VertexType>::graph_edges_type iterator_owner_graph_edges_type,
45 const typename graph<VertexType>::vertex_container* edge_begin_point_vertex_container,
46 typename graph<VertexType>::edges_type_selection_type edges_type_restriction,
47 graphdom::edge_type inner_iterator_edge_current_type
50 const graph<VertexType>* iterator_owner_pointer,
51 typename graph<VertexType>::graph_edges_type iterator_owner_graph_edges_type,
52 const typename graph<VertexType>::vertex_container* edge_begin_point_vertex_container,
53 typename graph<VertexType>::edges_type_selection_type edges_type_restriction,
54 graphdom::edge_type inner_iterator_edge_current_type,
55 const typename graph<VertexType>::template adj_set<typename graph<VertexType>::vertex_container*>::iterator& inner_iterator
58 const graph<VertexType>* iterator_owner_pointer,
59 typename graph<VertexType>::graph_edges_type iterator_owner_graph_edges_type,
60 const typename graph<VertexType>::vertex_container* edge_begin_point_vertex_container,
61 typename graph<VertexType>::edges_type_selection_type edges_type_restriction,
62 graphdom::edge_type inner_iterator_edge_current_type,
63 const typename graph<VertexType>::template adj_set<const typename graph<VertexType>::vertex_container*>::iterator& inner_iterator
68#include "impl/adj_list_iterator.h"
Every graph created using this library is an instance of a concrete class publicly derived,...
Definition graph.h:43