GraphDom
Loading...
Searching...
No Matches
graphdom::graph< VertexType >::const_adj_list< VertexType > Class Template Reference

Every valid instance of this class is a "container-like and non-owning" handle to a subset of the set of all out-edges of a vertex.
A valid instance adj of this class cannot create objects that allow modification of the graph to which the vertex associated with adj belongs without a non-constant reference to that graph. More...

#include <const_adj_list.h>

Public Member Functions

 const_adj_list (const const_adj_list &other)
 const_adj_list (const graph< VertexType >::adj_list &other)
 const_adj_list (const typename multiset_graph< VertexType >::adj_list &other)
const_adj_list & operator= (const const_adj_list &)=delete
const_adj_list & operator= (const_adj_list &&)=delete
graph< VertexType >::adj_list_const_iterator begin () const
graph< VertexType >::adj_list_const_iterator end () const
graph< VertexType >::adj_list_const_iterator cbegin () const
graph< VertexType >::adj_list_const_iterator cend () const

Detailed Description

template<typename VertexType>
template<typename VertexType>
class graphdom::graph< VertexType >::const_adj_list< VertexType >

Every valid instance of this class is a "container-like and non-owning" handle to a subset of the set of all out-edges of a vertex.
A valid instance adj of this class cannot create objects that allow modification of the graph to which the vertex associated with adj belongs without a non-constant reference to that graph.

An instance adj of this class is invalidated as soon as one of the following scenarios occurs:

  1. adj is constructed using an invalid instance of this class.
  2. adj is constructed using an invalid instance of graphdom::graph< VertexType >::adj_list.
  3. adj is constructed using an invalid instance of graphdom::multiset_graph< VertexType >::adj_list.

A valid instance adj of this class is invalidated as soon as the vertex it is associated with is erased.

If *this is invalid then any operation other than the destruction of *this will cause undefined behavior.

Warning
Users of the library MUST ABSOLUTELY NOT write code whose flow depends on the order of the elements in this container, even if the order relationship in which the elements are arranged is (obviously) deterministic.

The documentation for this class was generated from the following files: