Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. bool edgeexist(Graph const& g, int const& fromid, int const& toid, unsigned const& elabel) {
  2.     int bn = 0;
  3.  
  4.         if (num_edges(g) != 0) {
  5.             edge_pair ep;
  6.             for (ep = edges(g); ep.first != ep.second; ++ep.first) // ep edge number
  7.             {
  8.                 vertex_t from = source(*ep.first, g);
  9.                 vertex_t to = target(*ep.first, g);
  10.                 edge_t edg = edge(from, to, g);
  11.  
  12.                 if ((g[from].id == fromid) && (g[to].id == toid) && (g[edg.first].label == elabel)) {
  13.                     return true;
  14.                 }
  15.  
  16.         }
  17.     }
  18.  
  19.     return false;
  20. }
  21.  
  22.  
  23. std::unordered_set<std::array<int, 3>>  edgesdiff(Graph const& g1,Graph const& g2){
  24.  
  25.     std::unordered_set<edge_iter> v1,v2,diff;
  26.     std::array<int, 3> t;
  27.     std::unordered_set<std::array<int, 3>> res;
  28.  
  29.  
  30.     for(auto x:edges(g1)){
  31.  
  32.             vertex_t from = source(*x, g1);
  33.             t[0]=g1[from].id;
  34.  
  35.             vertex_t to = target(*x, g1);
  36.             t[1]=g1[to].id;
  37.  
  38.             edge_t edg = edge(from, to, g1);
  39.             t[2]=g1[edg.first].label;
  40.  
  41.         if(!edgeexist(g2,t[0],t[1],t[2])){res.insert(t);}
  42.  
  43.  
  44.     }
  45.  
  46. return res;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement