C++ Library Extensions 2022.12.09
To help learn modern C++ programming
tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType > Class Template Reference

#include <059-graph01.hpp>

Public Types

enum class  visit_mode : int { graph , visit_bfs , visit_dfs }
 
template<int DirectedEdge, int EdgePlurality = edge_plurality::single_edged, typename ElementType = const char*, typename NodeIndexType = int, typename EdgeWeightType = float, template< typename, typename... > class NodeContainerType = std::list, template< typename, typename... > class IndexContainerType = std::vector, template< typename, typename... > class EdgeContainerType = std::vector>
using graph_t = graph< DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType >
 
using element_t = ElementType
 
using index_t = NodeIndexType
 
using index_container_t = IndexContainerType< index_t >
 
using node_container_t = NodeContainerType< index_container_t >
 
using element_container_t = NodeContainerType< element_t >
 
using ref_element_container_t = NodeContainerType< std::reference_wrapper< element_t > >
 
using const_ref_element_container_t = NodeContainerType< std::reference_wrapper< const element_t > >
 
using node_ref_t = std::tuple< ElementType &, index_container_t & >
 
using const_node_ref_t = std::tuple< const ElementType &, const index_container_t & >
 
using node_info_t = std::tuple< const ElementType &, const_ref_element_container_t >
 
using element_t = ElementType
 
using index_t = NodeIndexType
 
using index_container_t = IndexContainerType< index_t >
 
using node_container_t = NodeContainerType< index_container_t >
 
using element_container_t = NodeContainerType< element_t >
 
using ref_element_container_t = NodeContainerType< std::reference_wrapper< element_t > >
 
using const_ref_element_container_t = NodeContainerType< std::reference_wrapper< const element_t > >
 
using node_ref_t = std::tuple< ElementType &, index_container_t & >
 
using const_node_ref_t = std::tuple< const ElementType &, const index_container_t & >
 
using node_info_t = std::tuple< const ElementType &, const_ref_element_container_t >
 

Public Member Functions

auto begin ()
 
auto end ()
 
auto cbegin ()
 
auto cend ()
 
bool empty () const
 
decltype(auto) adjacency_node_list (size_t node_index)
 
decltype(auto) adjacency_node_list (size_t node_index) const
 
const node_container_tnode_lists () const
 
const element_container_tvalues () const
 
auto adjacent_node_values (size_t node_index)
 
auto adjacent_node_values (size_t node_index) const
 
decltype(auto) node_value (size_t node_index)
 
decltype(auto) node_value (size_t node_index) const
 
node_info_t node_info (size_t node_index) const
 
 graph ()=default
 
size_t size ()
 
template<typename EleType , typename Type , typename... Types>
void emplace_back (EleType &&value, Type &&index0, Types &&... indices)
 
auto operator[] (size_t node_index)
 
auto operator[] (size_t node_index) const
 
auto begin ()
 
auto end ()
 
auto cbegin ()
 
auto cend ()
 
bool empty () const
 
decltype(auto) adjacency_node_list (size_t node_index)
 
decltype(auto) adjacency_node_list (size_t node_index) const
 
const node_container_tnode_lists () const
 
const element_container_tvalues () const
 
auto adjacent_node_values (size_t node_index)
 
auto adjacent_node_values (size_t node_index) const
 
decltype(auto) node_value (size_t node_index)
 
decltype(auto) node_value (size_t node_index) const
 
node_info_t node_info (size_t node_index) const
 
tpf::sstreamget_node_name (tpf::sstream &os, size_t index)
 
tpf::sstreamget_node_definition (tpf::sstream &os, size_t index)
 
tpf::sstreambuild_graph_edges (tpf::sstream &os, visit_mode vmode=visit_mode::graph)
 
std::string build_graph (visit_mode vmode=visit_mode::graph)
 
 graph ()=default
 
size_t size ()
 
template<typename EleType , typename Type , typename... Types>
void emplace_back (EleType &&value, Type &&index0, Types &&... indices)
 
auto operator[] (size_t node_index)
 
auto operator[] (size_t node_index) const
 
std::vector< index_ttraverse_bfs (index_t start=0)
 
void push_stack (std::deque< index_t > &stack, std::vector< char > &visited, size_t node_index)
 
std::vector< index_ttraverse_dfs (index_t start=0)
 

Friends

tpf::sstreamoperator<< (tpf::sstream &os, const graph &g)
 
tpf::sstreamoperator<< (tpf::sstream &os, const graph &g)
 

Detailed Description

template<typename ElementType, typename NodeIndexType, template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
class tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >

Definition at line 8 of file 059-graph01.hpp.

Member Typedef Documentation

◆ const_node_ref_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::const_node_ref_t = std::tuple<const ElementType&, const index_container_t&>

Definition at line 21 of file 059-graph01.hpp.

◆ const_node_ref_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::const_node_ref_t = std::tuple<const ElementType&, const index_container_t&>

Definition at line 21 of file 060-graph02.hpp.

◆ const_ref_element_container_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::const_ref_element_container_t = NodeContainerType<std::reference_wrapper<const element_t> >

Definition at line 18 of file 059-graph01.hpp.

◆ const_ref_element_container_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::const_ref_element_container_t = NodeContainerType<std::reference_wrapper<const element_t> >

Definition at line 18 of file 060-graph02.hpp.

◆ element_container_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::element_container_t = NodeContainerType<element_t>

Definition at line 15 of file 059-graph01.hpp.

◆ element_container_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::element_container_t = NodeContainerType<element_t>

Definition at line 15 of file 060-graph02.hpp.

◆ element_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::element_t = ElementType

Definition at line 11 of file 059-graph01.hpp.

◆ element_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::element_t = ElementType

Definition at line 11 of file 060-graph02.hpp.

◆ graph_t

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
template<int DirectedEdge, int EdgePlurality = edge_plurality::single_edged, typename ElementType = const char*, typename NodeIndexType = int, typename EdgeWeightType = float, template< typename, typename... > class NodeContainerType = std::list, template< typename, typename... > class IndexContainerType = std::vector, template< typename, typename... > class EdgeContainerType = std::vector>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::graph_t = graph<DirectedEdge, EdgePlurality, ElementType, NodeIndexType, EdgeWeightType, NodeContainerType, IndexContainerType, EdgeContainerType>

Definition at line 1340 of file tpf_graph.hpp.

◆ index_container_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::index_container_t = IndexContainerType<index_t>

Definition at line 13 of file 059-graph01.hpp.

◆ index_container_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::index_container_t = IndexContainerType<index_t>

Definition at line 13 of file 060-graph02.hpp.

◆ index_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::index_t = NodeIndexType

Definition at line 12 of file 059-graph01.hpp.

◆ index_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::index_t = NodeIndexType

Definition at line 12 of file 060-graph02.hpp.

◆ node_container_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_container_t = NodeContainerType<index_container_t>

Definition at line 14 of file 059-graph01.hpp.

◆ node_container_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_container_t = NodeContainerType<index_container_t>

Definition at line 14 of file 060-graph02.hpp.

◆ node_info_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_info_t = std::tuple<const ElementType&, const_ref_element_container_t>

Definition at line 23 of file 059-graph01.hpp.

◆ node_info_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_info_t = std::tuple<const ElementType&, const_ref_element_container_t>

Definition at line 23 of file 060-graph02.hpp.

◆ node_ref_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_ref_t = std::tuple<ElementType&, index_container_t&>

Definition at line 20 of file 059-graph01.hpp.

◆ node_ref_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_ref_t = std::tuple<ElementType&, index_container_t&>

Definition at line 20 of file 060-graph02.hpp.

◆ ref_element_container_t [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::ref_element_container_t = NodeContainerType<std::reference_wrapper<element_t> >

Definition at line 17 of file 059-graph01.hpp.

◆ ref_element_container_t [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
using tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::ref_element_container_t = NodeContainerType<std::reference_wrapper<element_t> >

Definition at line 17 of file 060-graph02.hpp.

Member Enumeration Documentation

◆ visit_mode

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
enum class tpf::graph::visit_mode : int
strong
Enumerator
graph 
visit_bfs 
visit_dfs 

Definition at line 25 of file 060-graph02.hpp.

Constructor & Destructor Documentation

◆ graph() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::graph ( )
default

◆ graph() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::graph ( )
default

Member Function Documentation

◆ adjacency_node_list() [1/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
decltype(auto) tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::adjacency_node_list ( size_t  node_index)
inline

Definition at line 40 of file 059-graph01.hpp.

Here is the caller graph for this function:

◆ adjacency_node_list() [2/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
decltype(auto) tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::adjacency_node_list ( size_t  node_index)
inline

Definition at line 42 of file 060-graph02.hpp.

◆ adjacency_node_list() [3/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
decltype(auto) tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::adjacency_node_list ( size_t  node_index) const
inline

Definition at line 45 of file 059-graph01.hpp.

◆ adjacency_node_list() [4/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
decltype(auto) tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::adjacency_node_list ( size_t  node_index) const
inline

Definition at line 47 of file 060-graph02.hpp.

◆ adjacent_node_values() [1/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::adjacent_node_values ( size_t  node_index)
inline

Definition at line 53 of file 059-graph01.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ adjacent_node_values() [2/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::adjacent_node_values ( size_t  node_index)
inline

Definition at line 55 of file 060-graph02.hpp.

Here is the call graph for this function:

◆ adjacent_node_values() [3/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::adjacent_node_values ( size_t  node_index) const
inline

Definition at line 67 of file 059-graph01.hpp.

◆ adjacent_node_values() [4/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::adjacent_node_values ( size_t  node_index) const
inline

Definition at line 69 of file 060-graph02.hpp.

◆ begin() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::begin ( )
inline

Definition at line 32 of file 059-graph01.hpp.

◆ begin() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::begin ( )
inline

Definition at line 34 of file 060-graph02.hpp.

◆ build_graph()

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
std::string tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::build_graph ( visit_mode  vmode = visit_mode::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >)
inline

Definition at line 194 of file 060-graph02.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_graph_edges()

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
tpf::sstream & tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::build_graph_edges ( tpf::sstream os,
visit_mode  vmode = visit_mode::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType > 
)
inline

Definition at line 122 of file 060-graph02.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cbegin() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::cbegin ( )
inline

Definition at line 35 of file 059-graph01.hpp.

◆ cbegin() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::cbegin ( )
inline

Definition at line 37 of file 060-graph02.hpp.

◆ cend() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::cend ( )
inline

Definition at line 36 of file 059-graph01.hpp.

◆ cend() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::cend ( )
inline

Definition at line 38 of file 060-graph02.hpp.

◆ emplace_back() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
template<typename EleType , typename Type , typename... Types>
void tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::emplace_back ( EleType &&  value,
Type &&  index0,
Types &&...  indices 
)
inline

Definition at line 111 of file 059-graph01.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ emplace_back() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
template<typename EleType , typename Type , typename... Types>
void tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::emplace_back ( EleType &&  value,
Type &&  index0,
Types &&...  indices 
)
inline

Definition at line 233 of file 060-graph02.hpp.

Here is the call graph for this function:

◆ empty() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
bool tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::empty ( ) const
inline

Definition at line 38 of file 059-graph01.hpp.

◆ empty() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
bool tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::empty ( ) const
inline

Definition at line 40 of file 060-graph02.hpp.

◆ end() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::end ( )
inline

Definition at line 33 of file 059-graph01.hpp.

◆ end() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::end ( )
inline

Definition at line 35 of file 060-graph02.hpp.

◆ get_node_definition()

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
tpf::sstream & tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::get_node_definition ( tpf::sstream os,
size_t  index 
)
inline

Definition at line 112 of file 060-graph02.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_node_name()

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
tpf::sstream & tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::get_node_name ( tpf::sstream os,
size_t  index 
)
inline

Definition at line 107 of file 060-graph02.hpp.

Here is the caller graph for this function:

◆ node_info() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
node_info_t tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_info ( size_t  node_index) const
inline

Definition at line 91 of file 059-graph01.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ node_info() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
node_info_t tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_info ( size_t  node_index) const
inline

Definition at line 93 of file 060-graph02.hpp.

Here is the call graph for this function:

◆ node_lists() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
const node_container_t & tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_lists ( ) const
inline

Definition at line 50 of file 059-graph01.hpp.

◆ node_lists() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
const node_container_t & tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_lists ( ) const
inline

Definition at line 52 of file 060-graph02.hpp.

◆ node_value() [1/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
decltype(auto) tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_value ( size_t  node_index)
inline

Definition at line 81 of file 059-graph01.hpp.

Here is the caller graph for this function:

◆ node_value() [2/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
decltype(auto) tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_value ( size_t  node_index)
inline

Definition at line 83 of file 060-graph02.hpp.

◆ node_value() [3/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
decltype(auto) tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_value ( size_t  node_index) const
inline

Definition at line 86 of file 059-graph01.hpp.

◆ node_value() [4/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
decltype(auto) tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::node_value ( size_t  node_index) const
inline

Definition at line 88 of file 060-graph02.hpp.

◆ operator[]() [1/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::operator[] ( size_t  node_index)
inline

Definition at line 121 of file 059-graph01.hpp.

◆ operator[]() [2/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::operator[] ( size_t  node_index)
inline

Definition at line 243 of file 060-graph02.hpp.

◆ operator[]() [3/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::operator[] ( size_t  node_index) const
inline

Definition at line 127 of file 059-graph01.hpp.

◆ operator[]() [4/4]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
auto tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::operator[] ( size_t  node_index) const
inline

Definition at line 249 of file 060-graph02.hpp.

◆ push_stack()

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
void tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::push_stack ( std::deque< index_t > &  stack,
std::vector< char > &  visited,
size_t  node_index 
)
inline

Definition at line 291 of file 060-graph02.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ size() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
size_t tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::size ( )
inline

Definition at line 108 of file 059-graph01.hpp.

Here is the caller graph for this function:

◆ size() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
size_t tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::size ( )
inline

Definition at line 230 of file 060-graph02.hpp.

◆ traverse_bfs()

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
std::vector< index_t > tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::traverse_bfs ( index_t  start = 0)
inline

Definition at line 255 of file 060-graph02.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ traverse_dfs()

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
std::vector< index_t > tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::traverse_dfs ( index_t  start = 0)
inline

Definition at line 308 of file 060-graph02.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ values() [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
const element_container_t & tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::values ( ) const
inline

Definition at line 51 of file 059-graph01.hpp.

◆ values() [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
const element_container_t & tpf::graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType >::values ( ) const
inline

Definition at line 53 of file 060-graph02.hpp.

Friends And Related Function Documentation

◆ operator<< [1/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
tpf::sstream & operator<< ( tpf::sstream os,
const graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType > &  g 
)
friend

Definition at line 133 of file 059-graph01.hpp.

◆ operator<< [2/2]

template<typename ElementType , typename NodeIndexType , template< typename, typename... > class NodeContainerType, template< typename, typename... > class IndexContainerType>
tpf::sstream & operator<< ( tpf::sstream os,
const graph< ElementType, NodeIndexType, NodeContainerType, IndexContainerType > &  g 
)
friend

Definition at line 331 of file 060-graph02.hpp.


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