[英]BGL: how can I get from a bundled object to a vertex descriptor?
問題是關於Boost Graph Library
(不幸的是沒有這樣的標簽)。
假設我已經通過使用Boost Graph Library
的捆綁屬性功能將Widget
實例與圖形的每個頂點相關聯。 類Widget
實現operator==
,並與頂點相關聯的所有部件是不同的(即,對於任意一對頂點的widget1 != widget2
保持用於與這些頂點相關聯的窗口小部件)。
該圖是否保持反向映射,即我可以輕松地檢索與給定對象相對應的頂點描述符嗎? 特別是,假設我有對象widget1
和widget2
,並且相應的頂點已添加到圖中。 如何在兩個對象之間(即對應的頂點之間)添加一條邊?
我懷疑BGL本身無法提供從頂點屬性到相應頂點描述符的映射,因為通常該映射是m:1
多對一。 許多頂點/描述符可以對應於同一屬性。 即使在您的情況下,您知道不同的頂點必須具有不同的屬性,但BGL通常無法得知。
創建圖形時,您可以自己維護此映射(例如vd_map
),例如使用std:map
。 在插入每個頂點及其屬性(在這種情況下為Widget
)時,請插入相應的條目:
vd_map[widget] = desc;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.