Ich schreibe eine Bibliothek für die Manipulation Bond Grafiken, und ich verwende die Boost Graph Library, um die Daten für mich zu speichern. Leider kann ich nicht herausfinden, wie man ein richtiges Besuchermuster mit ihm implementiert, da man keine Vertices herauslösen kann - man muss sich stattdessen auf "Eigenschaften" verlassen. Das Besucher-Framework, das in der Bibliothek bereitgestellt wird, scheint stark darauf ausgerichtet zu sein, mit bestimmten Algorithmen zu arbeiten, bei denen die Scheitelpunkte alle von demselben Typ sind, aber unterschiedliche Informationen speichern. In meinem Problem sind die Scheitelpunkte unterschiedlicher Art und speichern unterschiedliche Arten von Informationen - einige Scheitelpunkte sind Widerstände, während einige Kondensatoren usw. sind. Wie gehe ich beim Schreiben eines Besuchermusters vor, das auf der Grundlage einer Eigenschaft eines Scheitelpunkts arbeitet der Eckpunkt selbst?Boost Graph Bibliothek und Besucher
Mein einziger Gedanke war bisher, eine kleine Klasse zu schreiben, die den Typ eines Objekts darstellt, das auf den ursprünglichen Scheitelpunkt verweist, den ich brauche, um die Grapheninformationen zu erhalten. Das scheint jedoch sehr klatschig und böse zu sein.
Wirklich? Ich bin auf der Suche nach Dokumentation dazu, und ich kann nicht viel finden - könnten Sie ein kurzes Beispiel geben, wo Sie eine benutzerdefinierte Vertex-Klasse bereitstellen, anstatt Eigenschaften stattdessen auf Scheitelpunkte anzuheften? –
Ich hatte auch Probleme mit der Dokumentation. Sobald ich nach Hause komme, werde ich ein Codebeispiel posten. – aib
Es tut - ich endete mit einem ähnlichen Ansatz in einem Versuch für das Problem. Das einzige Problem hierbei ist, dass ich auch von den Eigenschaften des Elements aus auf die Vertex-Informationen zugreifen musste. Dies beinhaltete die Verfolgung des eigenen Vertex-Deskriptors des Elements und das Weiterleiten aller Anfragen für Verbindungsinformationen über den Deskriptor.Es war ziemlich kompliziert, und ich bin ziemlich sicher, dass es mir jetzt besser geht, selbst eine kleine Graphimplementierung zu schreiben. Danke, wenn ich diese Bibliothek in Zukunft für andere Dinge verwende, sind gebündelte Eigenschaften definitiv der richtige Weg! –