, ?
, .
?
!
a shared_ptr
( ). , , .
, , ?
! , , . , , .
, : - , ?
struct Edge {
uint32_t from;
uint32_t to;
}
std::vector<Edge> allEdges;
struct Node {
Data data;
std::vector<uint32_t> outEdges;
std::vector<uint32_t> inEdges;
}
std::vector<Node> allNodes;
,
struct Node {
Data data;
std::vector<uint32_t> outEdges;
std::vector<uint32_t> inEdges;
}
std::vector<Node> allNodes;
:
a) Node/Edge .
) ,
c)
Edge , .
, , , .
, , node edge. , , .