У меня есть это
struct node {
vector<vector<int>> *a;
node(){
a = new vector<vector<int>>(1001, vector<int>(1001, 0));
}
node(node *b) : a(b->a) {}
};
Теперь в основной функции я делаю это
node *a = new node();
node *b = new node(a);
(*b->a)[3][5] = 100;
cout << (*a->a)[3][5];
Здесь, когда я изменяю значение массива в объекте b, оно также изменяется в a. Но я формирую новый объект при назначении объекта б. Я хочу иметь возможность создавать новый объект, назначая и изменяя нужные значения во вновь созданном объекте, не изменяя значения в объекте, из которого он был скопирован (в данном случае это объект a). Точно так же, как мы делаем в постоянных сегментных тройниках. Как правильно это сделать.