#include <arcane/utils/GraphBaseT.h>
Classes | |
| class | IterableEnsembleT |
Public Types | |
| typedef std::reference_wrapper< VertexType > | VertexTypeRef |
| typedef std::reference_wrapper< const VertexType > | VertexTypeConstRef |
| typedef std::reference_wrapper< EdgeType > | EdgeTypeRef |
| typedef std::reference_wrapper< const EdgeType > | EdgeTypeConstRef |
| typedef std::list< VertexType > | VertexList |
| typedef std::list< EdgeType > | EdgeList |
| typedef SharedArray< VertexTypeRef > | VertexTypeRefArray |
| typedef SharedArray< VertexTypeConstRef > | VertexTypeConstRefArray |
| typedef SharedArray< EdgeTypeRef > | EdgeTypeRefArray |
| typedef SharedArray< EdgeTypeConstRef > | EdgeTypeConstRefArray |
| typedef std::map< VertexTypeConstRef, std::pair< VertexTypeRefArray, EdgeTypeRefArray > > | AdjacencyListType |
| typedef std::pair< VertexTypeRef, VertexTypeRef > | VertexPair |
| typedef std::map< EdgeTypeConstRef, VertexPair > | EdgeToVertexMap |
| typedef IterableEnsembleT< VertexList > | VertexSet |
| typedef IterableEnsembleT< EdgeList > | EdgeSet |
| typedef IterableEnsembleT< EdgeTypeRefArray > | ConnectedEdgeSet |
| typedef VertexType | VertexRef |
| typedef EdgeType | EdgeRef |
Public Member Functions | |
| void | addEdge (const VertexType &source_vertex, const VertexType &target_vertex, const EdgeType &source_to_target_edge) |
| Multiple edges (consisting of the same source and target nodes) are not allowed (throws FatalErrorException). | |
| void | addEdge (VertexType &&source_vertex, VertexType &&target_vertex, EdgeType &&source_to_target_edge) |
| template<class Vertex, class Edge> | |
| void | _addEdge (Vertex source_vertex, Vertex target_vertex, Edge source_to_target_edge) |
| EdgeType * | getEdge (const VertexType &source_vertex, const VertexType &target_vertex) |
| Returns a pointer to the EdgeType instance stored in the graph or nullptr if not found. | |
| const EdgeType * | getEdge (const VertexType &source_vertex, const VertexType &target_vertex) const |
| Returns a pointer to the EdgeType instance stored in the graph or nullptr if not found. | |
| EdgeType * | _getEdge (const VertexType &source_vertex, const VertexType &target_vertex) |
| VertexType * | getSourceVertex (const EdgeType &edge) |
| const VertexType * | getSourceVertex (const EdgeType &edge) const |
| VertexType * | getTargetVertex (const EdgeType &edge) |
| const VertexType * | getTargetVertex (const EdgeType &edge) const |
| VertexSet | vertices () |
| EdgeSet | edges () |
| ConnectedEdgeSet | inEdges (const VertexType &vertex) |
| ConnectedEdgeSet | outEdges (const VertexType &vertex) |
Protected Member Functions | |
| GraphBaseT (ITraceMng *trace_mng) | |
| virtual | ~GraphBaseT () |
Protected Attributes | |
| ITraceMng * | m_trace_mng |
| VertexList | m_vertices |
| EdgeList | m_edges |
| AdjacencyListType | m_adjacency_list |
| AdjacencyListType | m_adjacency_list_transposed |
| source_vertex -> target_vertices | |
| EdgeToVertexMap | m_edge_to_vertex_map |
| target_vertex -> source_vertices | |
Template base class for Graph. VertexType must implement a less comparison operator. To use print, VertexType must implement << operator Multiple Edges between the same Vertices are not allowed
Definition at line 48 of file GraphBaseT.h.
| typedef std::map<VertexTypeConstRef, std::pair<VertexTypeRefArray, EdgeTypeRefArray> > Arcane::GraphBaseT< VertexType, EdgeType >::AdjacencyListType |
Definition at line 114 of file GraphBaseT.h.
| typedef IterableEnsembleT<EdgeTypeRefArray> Arcane::GraphBaseT< VertexType, EdgeType >::ConnectedEdgeSet |
Definition at line 120 of file GraphBaseT.h.
| typedef std::list<EdgeType> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeList |
Definition at line 109 of file GraphBaseT.h.
| typedef EdgeType Arcane::GraphBaseT< VertexType, EdgeType >::EdgeRef |
Definition at line 135 of file GraphBaseT.h.
| typedef IterableEnsembleT<EdgeList> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeSet |
Definition at line 119 of file GraphBaseT.h.
| typedef std::map<EdgeTypeConstRef, VertexPair> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeToVertexMap |
Definition at line 116 of file GraphBaseT.h.
| typedef std::reference_wrapper<const EdgeType> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeTypeConstRef |
Definition at line 107 of file GraphBaseT.h.
| typedef SharedArray<EdgeTypeConstRef> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeTypeConstRefArray |
Definition at line 113 of file GraphBaseT.h.
| typedef std::reference_wrapper<EdgeType> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeTypeRef |
Definition at line 106 of file GraphBaseT.h.
| typedef SharedArray<EdgeTypeRef> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeTypeRefArray |
Definition at line 112 of file GraphBaseT.h.
| typedef std::list<VertexType> Arcane::GraphBaseT< VertexType, EdgeType >::VertexList |
Definition at line 108 of file GraphBaseT.h.
| typedef std::pair<VertexTypeRef, VertexTypeRef> Arcane::GraphBaseT< VertexType, EdgeType >::VertexPair |
Definition at line 115 of file GraphBaseT.h.
| typedef VertexType Arcane::GraphBaseT< VertexType, EdgeType >::VertexRef |
Definition at line 134 of file GraphBaseT.h.
| typedef IterableEnsembleT<VertexList> Arcane::GraphBaseT< VertexType, EdgeType >::VertexSet |
Definition at line 118 of file GraphBaseT.h.
| typedef std::reference_wrapper<const VertexType> Arcane::GraphBaseT< VertexType, EdgeType >::VertexTypeConstRef |
Definition at line 105 of file GraphBaseT.h.
| typedef SharedArray<VertexTypeConstRef> Arcane::GraphBaseT< VertexType, EdgeType >::VertexTypeConstRefArray |
Definition at line 111 of file GraphBaseT.h.
| typedef std::reference_wrapper<VertexType> Arcane::GraphBaseT< VertexType, EdgeType >::VertexTypeRef |
Definition at line 104 of file GraphBaseT.h.
| typedef SharedArray<VertexTypeRef> Arcane::GraphBaseT< VertexType, EdgeType >::VertexTypeRefArray |
Definition at line 110 of file GraphBaseT.h.
|
inlineprotected |
Class constructor
Definition at line 53 of file GraphBaseT.h.
Referenced by Arcane::DirectedAcyclicGraphT< VertexType, EdgeType >::DirectedAcyclicGraphT(), and Arcane::DirectedGraphT< VertexType, EdgeType >::DirectedGraphT().
|
inlineprotectedvirtual |
Class destructor
Definition at line 58 of file GraphBaseT.h.
|
inline |
Definition at line 151 of file GraphBaseT.h.
|
inline |
Definition at line 187 of file GraphBaseT.h.
|
inline |
Multiple edges (consisting of the same source and target nodes) are not allowed (throws FatalErrorException).
Definition at line 140 of file GraphBaseT.h.
|
inline |
Definition at line 145 of file GraphBaseT.h.
|
inline |
Definition at line 237 of file GraphBaseT.h.
|
inline |
Returns a pointer to the EdgeType instance stored in the graph or nullptr if not found.
Definition at line 176 of file GraphBaseT.h.
|
inline |
Returns a pointer to the EdgeType instance stored in the graph or nullptr if not found.
Definition at line 182 of file GraphBaseT.h.
|
inline |
Definition at line 200 of file GraphBaseT.h.
|
inline |
Definition at line 209 of file GraphBaseT.h.
|
inline |
Definition at line 218 of file GraphBaseT.h.
|
inline |
Definition at line 227 of file GraphBaseT.h.
|
inline |
Definition at line 239 of file GraphBaseT.h.
|
inline |
Definition at line 249 of file GraphBaseT.h.
|
inline |
Definition at line 236 of file GraphBaseT.h.
|
protected |
Definition at line 264 of file GraphBaseT.h.
|
protected |
source_vertex -> target_vertices
Definition at line 265 of file GraphBaseT.h.
|
protected |
target_vertex -> source_vertices
Definition at line 266 of file GraphBaseT.h.
|
protected |
Definition at line 263 of file GraphBaseT.h.
|
protected |
Definition at line 261 of file GraphBaseT.h.
|
protected |
Definition at line 262 of file GraphBaseT.h.