|
Boost Users : |
Subject: [Boost-users] [BGL] problem about copy graph
From: Li Ning (Ning.c.Li_at_[hidden])
Date: 2009-06-08 06:08:10
typedef adjacency_list<vecS, vecS, undirectedS, no_property, edge_ex>
graph_t;
typedef graph_traits<graph_t>::vertex_descriptor vertex_t;
typedef graph_traits<graph_t>::edge_descriptor edge_t;
struct edge_ex
{
//int index;
bw_t az_capacity;
bw_t za_capacity;
int cost;
vertex_t fake_source;
};
// init a graph g and assign edge_ex values, and get a std::pair<edge_t,
bool> r when add_edge(5,6,g);
graph_t g2 = g;
std::pair<edge_t, bool> rr = edge(5,6,g2);
g2[rr.first].cost = 1000;
std::cout<<g[r.first].cost<<" "<<g2[r.first].cost<<" "<<g2[rr.first];
//output is: old_value old_value 1000
WHY??
It seems a bug, g2[r.first] should be 1000 rather than the value assign to g
even r.first is a descriptor that belongs to g
OK, this is problematic usage, but... g2[r.first] works, it doesn't make
sense.
-- View this message in context: http://www.nabble.com/-BGL--problem-about-copy-graph-tp23921384p23921384.html Sent from the Boost - Users mailing list archive at Nabble.com.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net