Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::GraphBaseT< VertexType, EdgeType >

#include <arcane/utils/GraphBaseT.h>

+ Graphe d'héritage de Arcane::GraphBaseT< VertexType, EdgeType >:
+ Graphe de collaboration de Arcane::GraphBaseT< VertexType, EdgeType >:

Classes

class  IterableEnsembleT
 

Types publics

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
 

Fonctions membres publiques

void addEdge (const VertexType &source_vertex, const VertexType &target_vertex, const EdgeType &source_to_target_edge)
 Les arêtes multiples (constituées des mêmes noeuds source et target) ne sont pas autorisées (throw 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)
 Renvoie un pointeur vers l'instance d'EdgeType stockée dans le graphe ou nullptr si non trouvé.
 
const EdgeType * getEdge (const VertexType &source_vertex, const VertexType &target_vertex) const
 Renvoie un pointeur vers l'instance d'EdgeType stockée dans le graphe ou nullptr si non trouvé.
 
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)
 

Fonctions membres protégées

 GraphBaseT (ITraceMng *trace_mng)
 
virtual ~GraphBaseT ()
 

Attributs protégés

ITraceMngm_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
 

Description détaillée

template<class VertexType, class EdgeType>
class Arcane::GraphBaseT< VertexType, EdgeType >

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

Définition à la ligne 47 du fichier GraphBaseT.h.

Documentation des définitions de type membres

◆ AdjacencyListType

template<class VertexType , class EdgeType >
typedef std::map<VertexTypeConstRef,std::pair<VertexTypeRefArray,EdgeTypeRefArray> > Arcane::GraphBaseT< VertexType, EdgeType >::AdjacencyListType

Définition à la ligne 100 du fichier GraphBaseT.h.

◆ ConnectedEdgeSet

template<class VertexType , class EdgeType >
typedef IterableEnsembleT<EdgeTypeRefArray> Arcane::GraphBaseT< VertexType, EdgeType >::ConnectedEdgeSet

Définition à la ligne 106 du fichier GraphBaseT.h.

◆ EdgeList

template<class VertexType , class EdgeType >
typedef std::list<EdgeType> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeList

Définition à la ligne 95 du fichier GraphBaseT.h.

◆ EdgeRef

template<class VertexType , class EdgeType >
typedef EdgeType Arcane::GraphBaseT< VertexType, EdgeType >::EdgeRef

Définition à la ligne 111 du fichier GraphBaseT.h.

◆ EdgeSet

template<class VertexType , class EdgeType >
typedef IterableEnsembleT<EdgeList> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeSet

Définition à la ligne 105 du fichier GraphBaseT.h.

◆ EdgeToVertexMap

template<class VertexType , class EdgeType >
typedef std::map<EdgeTypeConstRef, VertexPair> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeToVertexMap

Définition à la ligne 102 du fichier GraphBaseT.h.

◆ EdgeTypeConstRef

template<class VertexType , class EdgeType >
typedef std::reference_wrapper<const EdgeType> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeTypeConstRef

Définition à la ligne 93 du fichier GraphBaseT.h.

◆ EdgeTypeConstRefArray

template<class VertexType , class EdgeType >
typedef SharedArray<EdgeTypeConstRef> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeTypeConstRefArray

Définition à la ligne 99 du fichier GraphBaseT.h.

◆ EdgeTypeRef

template<class VertexType , class EdgeType >
typedef std::reference_wrapper<EdgeType> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeTypeRef

Définition à la ligne 92 du fichier GraphBaseT.h.

◆ EdgeTypeRefArray

template<class VertexType , class EdgeType >
typedef SharedArray<EdgeTypeRef> Arcane::GraphBaseT< VertexType, EdgeType >::EdgeTypeRefArray

Définition à la ligne 98 du fichier GraphBaseT.h.

◆ VertexList

template<class VertexType , class EdgeType >
typedef std::list<VertexType> Arcane::GraphBaseT< VertexType, EdgeType >::VertexList

Définition à la ligne 94 du fichier GraphBaseT.h.

◆ VertexPair

template<class VertexType , class EdgeType >
typedef std::pair<VertexTypeRef,VertexTypeRef> Arcane::GraphBaseT< VertexType, EdgeType >::VertexPair

Définition à la ligne 101 du fichier GraphBaseT.h.

◆ VertexRef

template<class VertexType , class EdgeType >
typedef VertexType Arcane::GraphBaseT< VertexType, EdgeType >::VertexRef

Définition à la ligne 110 du fichier GraphBaseT.h.

◆ VertexSet

template<class VertexType , class EdgeType >
typedef IterableEnsembleT<VertexList> Arcane::GraphBaseT< VertexType, EdgeType >::VertexSet

Définition à la ligne 104 du fichier GraphBaseT.h.

◆ VertexTypeConstRef

template<class VertexType , class EdgeType >
typedef std::reference_wrapper<const VertexType> Arcane::GraphBaseT< VertexType, EdgeType >::VertexTypeConstRef

Définition à la ligne 91 du fichier GraphBaseT.h.

◆ VertexTypeConstRefArray

template<class VertexType , class EdgeType >
typedef SharedArray<VertexTypeConstRef> Arcane::GraphBaseT< VertexType, EdgeType >::VertexTypeConstRefArray

Définition à la ligne 97 du fichier GraphBaseT.h.

◆ VertexTypeRef

template<class VertexType , class EdgeType >
typedef std::reference_wrapper<VertexType> Arcane::GraphBaseT< VertexType, EdgeType >::VertexTypeRef

Définition à la ligne 90 du fichier GraphBaseT.h.

◆ VertexTypeRefArray

template<class VertexType , class EdgeType >
typedef SharedArray<VertexTypeRef> Arcane::GraphBaseT< VertexType, EdgeType >::VertexTypeRefArray

Définition à la ligne 96 du fichier GraphBaseT.h.

Documentation des constructeurs et destructeur

◆ GraphBaseT()

template<class VertexType , class EdgeType >
Arcane::GraphBaseT< VertexType, EdgeType >::GraphBaseT ( ITraceMng trace_mng)
inlineprotected

Constructeur de la classe

Définition à la ligne 52 du fichier GraphBaseT.h.

◆ ~GraphBaseT()

template<class VertexType , class EdgeType >
virtual Arcane::GraphBaseT< VertexType, EdgeType >::~GraphBaseT ( )
inlineprotectedvirtual

Destructeur de la classe

Définition à la ligne 57 du fichier GraphBaseT.h.

Documentation des fonctions membres

◆ _addEdge()

template<class VertexType , class EdgeType >
template<class Vertex , class Edge >
void Arcane::GraphBaseT< VertexType, EdgeType >::_addEdge ( Vertex  source_vertex,
Vertex  target_vertex,
Edge  source_to_target_edge 
)
inline

Définition à la ligne 127 du fichier GraphBaseT.h.

◆ _getEdge()

template<class VertexType , class EdgeType >
EdgeType * Arcane::GraphBaseT< VertexType, EdgeType >::_getEdge ( const VertexType &  source_vertex,
const VertexType &  target_vertex 
)
inline

Définition à la ligne 161 du fichier GraphBaseT.h.

◆ addEdge() [1/2]

template<class VertexType , class EdgeType >
void Arcane::GraphBaseT< VertexType, EdgeType >::addEdge ( const VertexType &  source_vertex,
const VertexType &  target_vertex,
const EdgeType &  source_to_target_edge 
)
inline

Les arêtes multiples (constituées des mêmes noeuds source et target) ne sont pas autorisées (throw FatalErrorException)

Définition à la ligne 116 du fichier GraphBaseT.h.

◆ addEdge() [2/2]

template<class VertexType , class EdgeType >
void Arcane::GraphBaseT< VertexType, EdgeType >::addEdge ( VertexType &&  source_vertex,
VertexType &&  target_vertex,
EdgeType &&  source_to_target_edge 
)
inline

Définition à la ligne 121 du fichier GraphBaseT.h.

◆ edges()

template<class VertexType , class EdgeType >
EdgeSet Arcane::GraphBaseT< VertexType, EdgeType >::edges ( )
inline

Définition à la ligne 201 du fichier GraphBaseT.h.

◆ getEdge() [1/2]

template<class VertexType , class EdgeType >
EdgeType * Arcane::GraphBaseT< VertexType, EdgeType >::getEdge ( const VertexType &  source_vertex,
const VertexType &  target_vertex 
)
inline

Renvoie un pointeur vers l'instance d'EdgeType stockée dans le graphe ou nullptr si non trouvé.

Définition à la ligne 150 du fichier GraphBaseT.h.

◆ getEdge() [2/2]

template<class VertexType , class EdgeType >
const EdgeType * Arcane::GraphBaseT< VertexType, EdgeType >::getEdge ( const VertexType &  source_vertex,
const VertexType &  target_vertex 
) const
inline

Renvoie un pointeur vers l'instance d'EdgeType stockée dans le graphe ou nullptr si non trouvé.

Définition à la ligne 156 du fichier GraphBaseT.h.

◆ getSourceVertex() [1/2]

template<class VertexType , class EdgeType >
VertexType * Arcane::GraphBaseT< VertexType, EdgeType >::getSourceVertex ( const EdgeType &  edge)
inline

Définition à la ligne 172 du fichier GraphBaseT.h.

◆ getSourceVertex() [2/2]

template<class VertexType , class EdgeType >
const VertexType * Arcane::GraphBaseT< VertexType, EdgeType >::getSourceVertex ( const EdgeType &  edge) const
inline

Définition à la ligne 179 du fichier GraphBaseT.h.

◆ getTargetVertex() [1/2]

template<class VertexType , class EdgeType >
VertexType * Arcane::GraphBaseT< VertexType, EdgeType >::getTargetVertex ( const EdgeType &  edge)
inline

Définition à la ligne 186 du fichier GraphBaseT.h.

◆ getTargetVertex() [2/2]

template<class VertexType , class EdgeType >
const VertexType * Arcane::GraphBaseT< VertexType, EdgeType >::getTargetVertex ( const EdgeType &  edge) const
inline

Définition à la ligne 193 du fichier GraphBaseT.h.

◆ inEdges()

template<class VertexType , class EdgeType >
ConnectedEdgeSet Arcane::GraphBaseT< VertexType, EdgeType >::inEdges ( const VertexType &  vertex)
inline

Définition à la ligne 203 du fichier GraphBaseT.h.

◆ outEdges()

template<class VertexType , class EdgeType >
ConnectedEdgeSet Arcane::GraphBaseT< VertexType, EdgeType >::outEdges ( const VertexType &  vertex)
inline

Définition à la ligne 213 du fichier GraphBaseT.h.

◆ vertices()

template<class VertexType , class EdgeType >
VertexSet Arcane::GraphBaseT< VertexType, EdgeType >::vertices ( )
inline

Définition à la ligne 200 du fichier GraphBaseT.h.

Documentation des données membres

◆ m_adjacency_list

template<class VertexType , class EdgeType >
AdjacencyListType Arcane::GraphBaseT< VertexType, EdgeType >::m_adjacency_list
protected

Définition à la ligne 227 du fichier GraphBaseT.h.

◆ m_adjacency_list_transposed

template<class VertexType , class EdgeType >
AdjacencyListType Arcane::GraphBaseT< VertexType, EdgeType >::m_adjacency_list_transposed
protected

source_vertex -> target_vertices

Définition à la ligne 228 du fichier GraphBaseT.h.

◆ m_edge_to_vertex_map

template<class VertexType , class EdgeType >
EdgeToVertexMap Arcane::GraphBaseT< VertexType, EdgeType >::m_edge_to_vertex_map
protected

target_vertex -> source_vertices

Définition à la ligne 229 du fichier GraphBaseT.h.

◆ m_edges

template<class VertexType , class EdgeType >
EdgeList Arcane::GraphBaseT< VertexType, EdgeType >::m_edges
protected

Définition à la ligne 226 du fichier GraphBaseT.h.

◆ m_trace_mng

template<class VertexType , class EdgeType >
ITraceMng* Arcane::GraphBaseT< VertexType, EdgeType >::m_trace_mng
protected

Définition à la ligne 224 du fichier GraphBaseT.h.

◆ m_vertices

template<class VertexType , class EdgeType >
VertexList Arcane::GraphBaseT< VertexType, EdgeType >::m_vertices
protected

Définition à la ligne 225 du fichier GraphBaseT.h.


La documentation de cette classe a été générée à partir du fichier suivant :