これは B+ ツリーのノードです。プログラムが大量のメモリ リークを起こしているため、スマート ポインターを使用したいと考えていました。スマート ポインターを使用してコードを変換するにはどうすればよいですか?
class node
{
public:
long* key;
int capacity;
node** nodes;
node* parent;
long* value;
node ( int order ) {
key = new long[order + 1];
value = new long[order + 1];
nodes = new node *[order + 2];
capacity = 0;
parent = NULL;
for ( int i = 0; i <= order + 1; i++ ) {
this->nodes[i] = NULL;
}
}
~node() {
delete[] key;
delete[] value;
for ( int i = 0; i <= order + 1; i++ ) {
delete nodes[i];
}
}
};