#include <iostream>
#include <vector>
class Node{
private:
std::vector<int> connects;
int action;
public:
Node(int num){
for(int i = 0; i < num; i++){
connects.push_back(i);
}
}
std::vector<int> getConn()
{
return connects;
}
};
class FSM{
private:
std::vector<Node> nodeList;
public:
FSM(){}
void addNode(int size){
Node l(size);
std::cout<<"temp_address "<<&l<<"\n";
nodeList.push_back(l);//use of default copy constructor
}
void printList(){
std::vector<int> p;
for (int i=0; i<nodeList.size(); i++)
{
std::cout<<"Node_arr_num "<<i<<" mem_address "<<&nodeList[i]<<"\nConnections:";
p=nodeList[i].getConn();
for (int j=0; j<p.size(); j++)
std::cout<<" "<<p[j];
std::cout<<"\n";
}
}
};
int main()
{
FSM f;
f.addNode(5);
f.addNode(10);
f.addNode(3);
f.printList();
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDx2ZWN0b3I+CiAgICAKICAgIGNsYXNzIE5vZGV7CiAgICAgICAgcHJpdmF0ZToKICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50PiBjb25uZWN0czsKICAgICAgICAgICAgaW50IGFjdGlvbjsKICAgIAogICAgICAgIHB1YmxpYzoKICAgICAgICAgICAgTm9kZShpbnQgbnVtKXsKICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCBudW07IGkrKyl7CiAgICAgICAgICAgICAgICAgICAgY29ubmVjdHMucHVzaF9iYWNrKGkpOwogICAgICAgICAgICAgICAgfQogICAgCiAgICAgICAgICAgIH0KICAgICAgICBzdGQ6OnZlY3RvcjxpbnQ+IGdldENvbm4oKQogICAgCXsKICAgIAkgICAgcmV0dXJuIGNvbm5lY3RzOwogICAgCX0KICAgIH07CiAgICAKICAgIGNsYXNzIEZTTXsKICAgICAgICBwcml2YXRlOgogICAgICAgICAgICBzdGQ6OnZlY3RvcjxOb2RlPiBub2RlTGlzdDsKICAgICAgICBwdWJsaWM6CiAgICAgICAgICAgIEZTTSgpe30KICAgIAl2b2lkIGFkZE5vZGUoaW50IHNpemUpewogICAgCQlOb2RlIGwoc2l6ZSk7CiAgICAJCXN0ZDo6Y291dDw8InRlbXBfYWRkcmVzcyAiPDwmbDw8IlxuIjsJCiAgICAgICAgICAgIG5vZGVMaXN0LnB1c2hfYmFjayhsKTsvL3VzZSBvZiBkZWZhdWx0IGNvcHkgY29uc3RydWN0b3IKICAgIAl9CiAgICAJdm9pZCBwcmludExpc3QoKXsKICAgIAkgICAgc3RkOjp2ZWN0b3I8aW50PiBwOwogICAgCSAgICBmb3IgKGludCBpPTA7IGk8bm9kZUxpc3Quc2l6ZSgpOyBpKyspCiAgICAJCXsKICAgIAkJCXN0ZDo6Y291dDw8Ik5vZGVfYXJyX251bSAiPDxpPDwiIG1lbV9hZGRyZXNzICI8PCZub2RlTGlzdFtpXTw8IlxuQ29ubmVjdGlvbnM6IjsKICAgIAkJCXA9bm9kZUxpc3RbaV0uZ2V0Q29ubigpOwogICAgCSAgICAJZm9yIChpbnQgaj0wOyBqPHAuc2l6ZSgpOyBqKyspCiAgICAJCQkJc3RkOjpjb3V0PDwiICI8PHBbal07CQogICAgCQkJc3RkOjpjb3V0PDwiXG4iOwogICAgCQl9CiAgICAJfQogICAgfTsKICAgIAogICAgaW50IG1haW4oKQogICAgewogICAgRlNNIGY7CiAgICBmLmFkZE5vZGUoNSk7CiAgICBmLmFkZE5vZGUoMTApOwogICAgZi5hZGROb2RlKDMpOwogICAgZi5wcmludExpc3QoKTsKICAgIHJldHVybiAwOwogICAgfQ==