Tengo un grafo que cuyos nodos son objetos de una clase y cuyas aristas son miembros de otra clase.
En un momento dado me interesa meter en una lista las direcciones (los punteros) de los ancestros de un nodo dado, para luego hacerle "las perrerías" que tengo en mente. Entonces, cuando quiero acceder a algún miembro de algún nodo, se me produce violación de segmento.
Hago un ejemplo esquemático de lo que quiero:
Las clases que van en nodos y aristas respectivamente
Código C++:
Ver original
template <typename DATON, typename DATOA> struct nodo { DATON datonodo; ............ }; template <typename DATOA, typename DATON> struct arista { DATOA datoarista; ................... };
Ahora tengo un grafo de la forma
Código C++:
Ver original
Grafo<DATON,DATOA>;
Una vez concretados los nodos y aristas en las clases Clase_A y Clase_B, defino la lista y el iterador:
Código C++:
Ver original
std::list<nodo<Clase_A,Clase_B>*> listanodos; std::list<nodo<Clase_A,Clase_B>*>::iterator Iterador;
Puedo usar los métodos front() y end() para leer:
Esto sí me funciona
Código C++:
Ver original
std::cout<<listanodos.front()->datonodo.LeeDato(); std::cout<<listanodos.back()->datonodo.LeeDato();
Pero ahora, cuando quiero acceder a los datos de un miembro de la lista, no sé cómo hacerlo.
Intento ésto:
Código C++:
Ver original
std::cout<<(*Iterador)->datonodo.LeeDato();
Y obtengo violación de segmento.
¿Alguna ayudita?