Bonsoir,
J'ai écris un programme de graphs mining, ça commence par la lecture d'informations à partir d'un fichier et puis la creation des graphes et l'insertion dans un std::vector.
jusqu'ici tout va bien..
La partie ou il y a un probléme est celle la:
Cette fonction retourne les informations sur la différence entre les arêtes de deux graphes dans un std::vector<std::array<int, 3>>
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
18
19
20
21
22
23
24
25 std::vector<std::array<int, 3>> edgesdiff(Graph const& g1,Graph const& g2){ std::array<int, 3> t; std::vector<std::array<int, 3>> res; edge_pair ep; for (ep = edges(g1); ep.first != ep.second; ++ep.first) // ep edge number { vertex_t from = source(*ep.first, g1); int froml=g1[from].label; t[0]=g1[from].id; vertex_t to = target(*ep.first, g1); int tol=g1[from].label; t[1]=g1[to].id; edge_t edg = edge(from, to, g1); t[2]=g1[edg.first].label; if(!edgeexistlabels(g2,froml,tol,t[2])){res.push_back(t);} } return res; }
par différence je veux dire les arêtes qui se trouve dans g1 mais pas dans g2
Voila le programme en live: http://coliru.stacked-crooked.com/a/a22b68c87d6b6600
ça donne le résultat suivant:
en vérité ça doit retourner:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 [0][1][11] [1][2][12] [1][3][13] [2][3][14]
je ne comprends pas ou est l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [0][1][11] [1][3][13]Aidez moi à régler ça svp!
![]()
Partager