Arcane  v3.14.10.0
Documentation développeur
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< VertexTypeVertexTypeRef
 
typedef std::reference_wrapper< const VertexTypeVertexTypeConstRef
 
typedef std::reference_wrapper< EdgeTypeEdgeTypeRef
 
typedef std::reference_wrapper< const EdgeTypeEdgeTypeConstRef
 
typedef std::list< VertexTypeVertexList
 
typedef std::list< EdgeTypeEdgeList
 
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< EdgeTypeRefArrayConnectedEdgeSet
 
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)
 
EdgeTypegetEdge (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 EdgeTypegetEdge (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)
 
VertexTypegetSourceVertex (const EdgeType &edge)
 
const VertexTypegetSourceVertex (const EdgeType &edge) const
 
VertexTypegetTargetVertex (const EdgeType &edge)
 
const VertexTypegetTargetVertex (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
 

Fonctions membres privées

template<class Vertex >
VertexType_addVertex (Vertex vertex)
 
template<class Vertex >
std::pair< Integer, EdgeTypeRefArray_getEdgeIndex (Vertex source_vertex, Vertex target_vertex)
 
template<class Vertex >
Integer _getTargetVertexIndex (typename AdjacencyListType::iterator source_vertex_map_entry, Vertex target_vertex)
 
template<class Vertex >
Integer _getConnectedVertexIndex (typename AdjacencyListType::iterator vertex_map_entry, Vertex connected_vertex)
 

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

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

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

◆ ConnectedEdgeSet

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

◆ EdgeList

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

◆ EdgeRef

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

◆ EdgeSet

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

◆ EdgeToVertexMap

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

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

◆ EdgeTypeConstRef

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

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

◆ EdgeTypeConstRefArray

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

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

◆ EdgeTypeRef

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

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

◆ EdgeTypeRefArray

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

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

◆ VertexList

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

◆ VertexPair

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

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

◆ VertexRef

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

◆ VertexSet

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

◆ VertexTypeConstRef

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

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

◆ VertexTypeConstRefArray

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

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

◆ VertexTypeRef

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

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

◆ VertexTypeRefArray

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

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

Documentation des constructeurs et destructeur

◆ GraphBaseT()

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

Constructeur de la classe

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

◆ ~GraphBaseT()

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 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.

◆ _addVertex()

template<class Vertex >
VertexType & Arcane::GraphBaseT< VertexType, EdgeType >::_addVertex ( Vertex  vertex)
inlineprivate

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

◆ _getConnectedVertexIndex()

template<class Vertex >
Integer Arcane::GraphBaseT< VertexType, EdgeType >::_getConnectedVertexIndex ( typename AdjacencyListType::iterator  vertex_map_entry,
Vertex  connected_vertex 
)
inlineprivate

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

◆ _getEdge()

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

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

◆ _getEdgeIndex()

template<class Vertex >
std::pair< Integer, EdgeTypeRefArray > Arcane::GraphBaseT< VertexType, EdgeType >::_getEdgeIndex ( Vertex  source_vertex,
Vertex  target_vertex 
)
inlineprivate

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

◆ _getTargetVertexIndex()

template<class Vertex >
Integer Arcane::GraphBaseT< VertexType, EdgeType >::_getTargetVertexIndex ( typename AdjacencyListType::iterator  source_vertex_map_entry,
Vertex  target_vertex 
)
inlineprivate

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

◆ addEdge() [1/2]

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]

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()

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

◆ getEdge() [1/2]

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]

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]

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

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

◆ getSourceVertex() [2/2]

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

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

◆ getTargetVertex() [1/2]

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

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

◆ getTargetVertex() [2/2]

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

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

◆ inEdges()

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

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

◆ outEdges()

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

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

◆ vertices()

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

Documentation des données membres

◆ m_adjacency_list

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

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

◆ m_adjacency_list_transposed

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

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

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

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

◆ m_trace_mng

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

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

◆ m_vertices

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 :