Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool edgeexist(Graph const& g, int const& fromid, int const& toid, unsigned const& elabel) {
- int bn = 0;
- if (num_edges(g) != 0) {
- edge_pair ep;
- for (ep = edges(g); ep.first != ep.second; ++ep.first) // ep edge number
- {
- vertex_t from = source(*ep.first, g);
- vertex_t to = target(*ep.first, g);
- edge_t edg = edge(from, to, g);
- if ((g[from].id == fromid) && (g[to].id == toid) && (g[edg.first].label == elabel)) {
- return true;
- }
- }
- }
- return false;
- }
- std::unordered_set<std::array<int, 3>> edgesdiff(Graph const& g1,Graph const& g2){
- std::unordered_set<edge_iter> v1,v2,diff;
- std::array<int, 3> t;
- std::unordered_set<std::array<int, 3>> res;
- for(auto x:edges(g1)){
- vertex_t from = source(*x, g1);
- t[0]=g1[from].id;
- vertex_t to = target(*x, g1);
- t[1]=g1[to].id;
- edge_t edg = edge(from, to, g1);
- t[2]=g1[edg.first].label;
- if(!edgeexist(g2,t[0],t[1],t[2])){res.insert(t);}
- }
- return res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement