[英]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.