Я ищу, чтобы создать структуру данных Skip List. Вот снимок кода, который у меня есть для Node.
#define MAX_HEIGHT = 20;
struct Node {
int i;
Node *nodes[20];
}
Я понимаю, что если бы я использовал вектор в этом случае, это было бы намного лучше, поскольку вы можете динамически изменять его размер. Мне было интересно, куда бы я пошел, если бы я хотел использовать массивы.
Я новичок в C ++, поэтому мне интересно, возможно ли назначить размер массива на более позднем этапе. Скажем, я хотел добавить еще один узел, который имеет только массив указателей размера 2.
Вы можете передать высоту конструктору создаваемого узла, внутри конструктора, который вы только что динамически выделить массив указателей Node
, и не забудьте освободить эту память в деструкторе:
struct Node {
int i;
int height;
Node* *nodes;
Node(int h) {
nodes = new Node*[h];
height = h;
}
~Node() {
delete [] nodes;
}
};
Других решений пока нет …