Bonjour à tous,
J'ai un problème que j'arrive pas à résoudre
tout me semble correcte et à la fois, j'arrive pas à tenir le bout du fil
Voilà, je fais un parcours d'un set d'entiers (ensemble_entier dans le code)
aprés je cherche dans un map l'element dont l'id est l'entier courant du set.
Le deuxième element de mon map est une regle ( exempe de regle 1 3 -> 4)
donc une regle est constituée d'une partie premisse (ici 1 3) qui est un set d'entiers
{1 ,3} et une partie conclusion (conc= 4: entier)
donc dans mon code les méthodes retourner_conclusion() et retourner_premisse()
permettent de retourner respectivement la conlusion et la premisse d'une regle
Le problème, c'est que mon code marche bien quand je ne fais pas appel à retourner_premisse().
avec retourner_premisse, ce bout de code boucle jusqu'à l'infini
sachant que dans retourner_premisse(), je fais juste un return premisse
et que ça marche bien dans d'autres parties de mon programme
merci si vous avez une idée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 //conc est une entier //premisse est un set d'entiers for(set<int>::iterator i=ensemble_entier.begin();i!=ensemble_entier.end();i++) { cout<<"je vais chercher l'element "<<(int)*i; map<int, regle > ::iterator m = regles.find((int)*i); conc=(*m).second.retourner_conclusion(); cout<<"conclusion ="<<conc; // c'est cette partie du code qui génére une boucle infinie p=(*m).second.retourner_premisse(); cout<<"premisse ";afficher_set(p); }
Partager