本文介绍了增加一个外部属性包括图(增强)指数vertix的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用一个associative_property_map包括顶点指数,但我得到了下面的错误有以下简单的code,这是什么问题?

 的#include<升压/图/ iteration_macros.hpp>
#包括LT&;升压/图/ adjacency_list.hpp>使用命名空间std;
使用名字空间boost;结构NODEDATA
{
    INT标签;
};结构EdgeData
{
    INT年龄;
};typedef的地图和LT;血管内皮细胞,为size_t> IndexMap;
IndexMap mapIndex;
associative_property_map< IndexMap> propmapIndex(mapIndex);的typedef的adjacency_list<套,,undirectedS,NODEDATA,EdgeData>图形;
图表的typedef :: vertex_descriptor的节点ID;
图表的typedef :: edge_descriptor的EdgeID的;诠释的main()
{
    图克;    节点ID N0 = add_vertex(G);政[N0] .label = -1;
    节点ID N1 = add_vertex(G);政[N1] .label = -1;    EdgeID的边缘;布尔OK;
    领带(边,OK)=提振::的add_edge(N0,N1,G);
    如果(OK)G [边]。年龄= 10;    INT I = 0;
    BGL_FORALL_VERTICES(V,G,图表)
    {
        把(propmapIndex,V,I ++);
    }    返回0;
}

错误:

Thanks

解决方案

The vertex descriptor must be specified to IndexMap, so it's map<NodeID, size_t> and not map<vecS, size_t> :

<...>
typedef Graph::vertex_descriptor NodeID;

typedef map<NodeID, size_t> IndexMap;
IndexMap mapIndex;
associative_property_map<IndexMap> propmapIndex(mapIndex);
<...>

// indexing all vertices
int i=0;
BGL_FORALL_VERTICES(v, g, Graph)
{
   put(propmapIndex, v, i++);
}

这篇关于增加一个外部属性包括图(增强)指数vertix的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 04:27