#include <iostream>
#include <vector>
using namespace std;
class node
{
public:
vector<node*> next;
void add_arc(node & a);
string somestring;
};
void node::add_arc(node & a)
{
node *b = &a;
next.push_back(b); //only copyies nodes
}
int main() {
vector<node> nodes;
node a;
node b;
node c;
a.somestring = "a";
b.somestring = "b";
c.somestring = "c";
a.add_arc(b); //a should point to b
a.add_arc(c); //a should point to c
nodes.push_back(a);
nodes.push_back(b);
nodes.push_back(c);
cout << nodes[0].next.size() << endl; // prints "2", works fine
cout << nodes[0].next[0]->somestring << endl; //empty
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3Mgbm9kZQp7CnB1YmxpYzoKICAgIHZlY3Rvcjxub2RlKj4gbmV4dDsKICAgIHZvaWQgYWRkX2FyYyhub2RlICYgYSk7CgogICAgc3RyaW5nIHNvbWVzdHJpbmc7CiAgICAKfTsKCnZvaWQgbm9kZTo6YWRkX2FyYyhub2RlICYgYSkKewogICAgbm9kZSAqYiA9ICZhOwogICAgbmV4dC5wdXNoX2JhY2soYik7ICAgICAgIC8vb25seSBjb3B5aWVzIG5vZGVzCn0KCmludCBtYWluKCkgewogICB2ZWN0b3I8bm9kZT4gbm9kZXM7CiAgICBub2RlIGE7CiAgICBub2RlIGI7CiAgICBub2RlIGM7CgogICAgYS5zb21lc3RyaW5nID0gImEiOwogICAgYi5zb21lc3RyaW5nID0gImIiOwogICAgYy5zb21lc3RyaW5nID0gImMiOwoKICAgIGEuYWRkX2FyYyhiKTsgICAgICAvL2Egc2hvdWxkIHBvaW50IHRvIGIKICAgIGEuYWRkX2FyYyhjKTsgICAgICAvL2Egc2hvdWxkIHBvaW50IHRvIGMKCiAgICBub2Rlcy5wdXNoX2JhY2soYSk7CiAgICBub2Rlcy5wdXNoX2JhY2soYik7CiAgICBub2Rlcy5wdXNoX2JhY2soYyk7CgogICAgY291dCA8PCBub2Rlc1swXS5uZXh0LnNpemUoKSA8PCBlbmRsOyAgICAgICAgICAgLy8gcHJpbnRzICIyIiwgd29ya3MgZmluZQogICAgY291dCA8PCBub2Rlc1swXS5uZXh0WzBdLT5zb21lc3RyaW5nIDw8IGVuZGw7ICAvL2VtcHR5CiAgICByZXR1cm4gMDsKfQ==