adjacency_listグラフ(および頂点のグループ)の頂点とエッジの外部プロパティを保持したいと考えています。それらのプロパティによって頂点にアクセスできる必要があります。 たとえば、いくつかのウェイトが割り当てられたすべての頂点を繰り返し処理し、それらのエッジを取得したいとします。adjacency_listの定数頂点ID
しかし、頂点コンテナも設定する必要があります。 このコンテナで頂点を削除すると、頂点記述子が無効になることがあります。
問題は、外部プロパティを無効なvertex_descriptorsにマップできるようになったことです。
1つのアプローチは、vertex_indexプロパティを追加することです。これはうまくいきません。方向性があるため、vertex_descriptorでvertex_indexを取得できますが、それ以外の方法では取得できません。つまり、私は2つの頂点の間に辺を追加することはできません。
別の有望な解決策は、ラベル付きグラフを使用することでした。このグラフでは、エッジのみをラベルで追加できます。私は、ラベルIDを持つ外部データを保存することでかなり遠くになっていたかもしれません。残念ながら、adjacency_listインターフェイスのすべてがラベルを使用して再実装されているわけではありません。 out_edges。これは、頂点記述子にアクセスできる必要があることを意味し、表示されるように、ラベルのみを使用することは(妥当な時間内に)不可能であることを意味します。here
もっと良い解決策は、 vertex_labelプロパティこれはあまりにも複雑で、動作しません(上記の例)。
頂点が外部データに関連するのは一般的ではありませんか?どうすればいい?
「すべての頂点に重みが割り当てられました」 - エッジを意味しましたか? – sehe
いいえ、例のコードのように - ver_by_weight.equal_range(重み)。 – bravesirrobin