2013-09-01 4 views
-1

Je suis en train de faire des sommets que si elles n'existent pas déjà dans le principal que je fais:Pourquoi la méthode de comparaison ne fonctionne-t-elle pas?

p_graph est un pointeur sur le graphique de classe où je suis en train de comparer vert1 qui est une chaîne à toutes les autres chaînes déjà le graphique et si c'est là, je veux aller à l'autre déclaration ci-dessus. Dans la classe Graph j'ai le code suivant:

mais quand je regarde le code avec l'itérateur du débogueur "il" ne semble pas getName(), qui est une autre chaîne dans la classe Vertex, de sorte que la comparaison avec la chaîne v peut être terminé. Comment devrais-je résoudre ce problème?

Voici Vertex Constructor:

+1

Basé sur le code indiqué, il ne peut pas être déterminé ce qui ne va pas! Pouvez-vous montrer le constructeur de 'Vertex' et le membre' getName() '? –

+0

Fournir plus de contexte s'il vous plaît – Manu343726

+0

Je ne comprends pas votre phrase "ne semble pas getName(), qui est une autre chaîne de classe Vertex, donc la comparaison avec la chaîne v peut être faite." – dzada

Répondre

4

En fait, il semble que si vous n'insérez pas votre sommet dans un graphique après sa création:

if (!(p_graph->vertexInGraph(vert1))) { // if vert1 is not already in graph 
    v1 = new Vertex(vert1, i); 
    i++; // increments vertex number 
    } 

Ce morceau de code a probablement besoin de quelque chose comme

p_graph->insertVertex(v1); 
+0

Mais mon graphique a un vecteur sommets que je parcourt dans le code ci-dessus n'est-ce pas que ça va prendre soin de stocker des sommets dans le graphe? – Napalidon

+1

@Napalidon: même si votre graphique a un «vecteur », quelqu'un doit y ajouter des éléments. Sinon, il restera vide là-bas, peu importe le nombre d'instances de 'Vertex' que vous créez. Il y a aussi un problème: si vous avez un 'vecteur ', alors les éléments qui lui sont destinés ne devraient pas être créés avec 'new'. Ce n'est pas comme ça que 'vector' fonctionne. –

+0

Je regarde mon code maintenant et il semble que j'ai oublié d'écrire une fonction pour mettre des sommets dans le vecteur . – Napalidon

Questions connexes