Implementierung eines Destruktors für einen N-Ary-Graphknoten, der nicht stackoverflow
Posted: 20 Apr 2025, 04:39
Ich arbeite an der Modernisierung einer älteren C ++ - Code -Basis, die eine einfache Grafikstruktur enthält, die ursprünglich wie Folgendes aussah: < /p>
In ein "Modernes C ++" Form, das std :: eindeutig_ptr verwendet, sieht die Knotenstruktur jetzt so aus:
Der größte Teil der Funktionalität funktioniert. Wenn der Graphen jedoch sehr groß ist, erhalte ich Stackoverflows und der Prozess stürzt im Destruktor von dag_node . Der Zerstörer, um sicherzustellen, dass ein SO nicht wieder vorkommt?>
Code: Select all
struct node_value_t {
...
};
struct dag_node {
std::vector children;
node_value_t value;
};
Code: Select all
struct dag_node {
std::vector children;
node_value_t value;
};