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:
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;
}
Cette fonction retourne les informations sur la différence entre les arêtes de deux graphes dans un std::vector<std::array<int, 3>>
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:
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]
en vérité ça doit retourner:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
[0][1][11]
 
 
[1][3][13]
je ne comprends pas ou est l'erreur Aidez moi à régler ça svp!
Nom : 5comp_graphs.png
Affichages : 97
Taille : 369,6 Ko