¿Cómo crear una copia de una matriz de valores y una matriz de punteros sin utilizar std?
No puedo entender cómo hacer una copia de esta estructura:
struct Node {
private:
int *keys_;
int min_degree_;
Node **children_;
int count_;
bool is_leaf_;
…
Bueno, entiendo la mitad de todo esto:
Node(Node const &node) {
min_degree_ = node.min_degree_;
is_leaf_ = node.is_leaf_;
count_ = node.count_;
…
}
Y no está claro cómo hacer una copia del arreglo de valores (int keys_) y arreglo de punteros (Node *children_) sin STD. Se tiene que borrar el objeto original para que puedan copiarse las referencias, aunque no estoy seguro.
davy.ai
Node(Node const &node) {
min_degree_ = node.min_degree_;
is_leaf_ = node.is_leaf_;
count_ = node.count_;
keys_ = new int[node.count_];
for (int i = 0; i < node.count_; i++) {
keys_[i] = node.keys_[i];
}
children_ = new Node[node.count_ + 1];
for (int i = 0; i <= node.count_; i++) {
children_[i] = new Node(node.children_[i]);
}
}
Node(Node const &node) {
min_degree_ = node.min_degree_;
is_leaf_ = node.is_leaf_;
count_ = node.count_;
keys_ = new int[node.count_];
for (int i = 0; i < node.count_; i++) {
keys_[i] = node.keys_[i];
}
children_ = new Node* [node.count_ + 1];
for (int i = 0; i <= node.count_; i++) {
children_[i] = new Node(*node.children_[i]);
}
}