Vielleicht ist das eine blöde Frage, aber ich versuche, BGLs dijkstra_shortest_paths
zu verwenden, und insbesondere ein Feld meiner gebündelten Edge-Eigenschaft als Gewichtsmap zu verwenden. Meine Versuche haben derzeit zu Dutzenden von Compilerfehlern geführt, daher hoffe ich, dass jemand weiß, wie er mir helfen kann. Das ist im Wesentlichen, wie mein Code aussieht:
Ich kann die Grafik ohne Probleme füllen, aber wenn ich dijkstra_shortest_paths
aufrufen muss, bekomme ich Ärger. Ich möchte das Feld length
verwenden. Genauer gesagt, würde ich gerne wissen, was für ein Boost-Voodoo nötig ist, um bei einem Anruf wie diesem fit zu werden:
so dass wightmap irgendwie eine bestimmte Kante meines Graphen mit dem entsprechenden length
Feld in der Eigenschaft assoziiert. Ich bin mir sicher, dass es einen einfachen Weg dafür gibt, aber die Dokumentation für BGL ist für mich unglaublich undurchsichtig. Wenn Sie mir sagen können, wo in der Dokumentation das Beispiel beschrieben wird, wäre ich auch sehr glücklich.
Vielen Dank im Voraus!
Falls jemand sich darum kümmert, scheint die Verwendung der benannten Parameterversion des Aufrufs wie folgt funktioniert zu haben:
%Vor%Dies ist in der Dokumentation hier . Ich weiß jedoch immer noch nicht, wie ich die "nicht benannte Parameter" -Version des Anrufs verwenden soll.
Ok, ich habe einfach zu viel Zeit mit diesem Problem verschwendet. Hier ist die Lösung für die Nachwelt:
%Vor%Im Ernst, diese Bibliothek ist großartig, aber die Dokumentation ist definitiv fehlt. Dies sollte eine triviale Angelegenheit sein.
BEARBEITEN
Wenn Sie C ++ 11 verwenden, bevorzugen Sie möglicherweise die folgende Alternative.
%Vor%So mächtig das BGL auch sein mag, es ist leider nicht so einfach, es in meiner ehrlichen Meinung zu verwenden. Um dies zum Laufen zu bringen, mussten wir einige Versuche durchführen, aber hier ist eine funktionierende Version, die mit Boost 1.53.0 kompiliert wurde [wir möchten Dijkstras Algorithmus für die Variable 'rate' in __edge_data] verwenden:
%Vor%Ich hoffe aufrichtig, dass dies hilft! Mein Versuch hier war es, zu zeigen, wie man auf alle Hauptfunktionen zugreifen kann, die für den Algorithmus verfügbar sind.
Tags und Links c++ boost-graph