簡體   English   中英

使用索引增強圖形邊緣

[英]Boost Graph edges with indexes

我正在嘗試從一對pair(int,int)邊(其中每個int代表一個頂點索引)中定義具有無向邊的圖。 每個這樣的邊都有自己的索引。

問題是我希望圖形的內部頂點索引與原始頂點索引一致。 我還希望能夠從邊緣描述符中提取原始邊緣索引。

http://www.boost.org/doc/libs/1_47_0/libs/graph/doc/using_property_maps.html (“ 外部屬性”部分)中,我了解到我應該使用以下圖形類型:

typedef adjacency_list<vecS, vecS, udirectedS, 
no_property, property<edge_index_t, std::size_t> > Graph;

不幸的是,沒有關於如何使用edge_index_t屬性的解釋。

顯然,我可以只使用map(pair(int,int),int),但是我正在尋找一種更優雅的面向Boost的解決方案。

謝謝基里爾

由於使用向量來定義頂點集合,因此頂點索引和頂點描述符之間存在一一對應的關系。 您只需要按以下方式定義圖形對象:

Graph g(N);

其中N是頂點數。 這分配了N個頂點,每個頂點描述符是一個從0到N-1的數字。

要從邊緣描述符獲取邊緣索引,可以使用get函數: get(edge_index, g, edge_descriptor); 您可以從neighbor_vertices adjacent_vertices(v, g)函數返回的迭代器中獲取邊緣描述符。

希望它是您的意思。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM