问题标签 [boost-graph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
12197 浏览

c++ - 图可视化(升压图)

我有使用 boost 图形库的 C++ 程序。我想知道是否有任何方法可以在节点中包含的某个位置值之后可视化图形(节点和可选的边)。请查看下面的图像示例以了解我想要可视化的内容:http: //img11.hostingpics.net/pics/647608graphViz.png

谢谢。

0 投票
1 回答
1752 浏览

c++ - 如何为我的图提供 vertex_index 属性

由于我的图使用 setS 作为顶点,我必须为我的图提供一个 vertex_index 属性映射,或者为 write_graphviz 提供一个显式的 vertex_id 参数,以便能够使用 write_graphviz。 My graph is defined as: typedef adjacency_list<setS, setS, undirectedS, NodeData, EdgeData> Graph; 其中 NodeData 和 EdgeData 是结构。你能给我一个非常简单的例子来说明如何为我的图提供一个 vertex_index 属性映射吗?或者如何给 write_graphviz 一个明确的 vertex_id 参数?

谢谢

0 投票
1 回答
857 浏览

c++ - 添加外部属性以在图中包含顶点索引(增强)

我正在尝试使用 associative_property_map 来包含顶点索引,但是使用以下简单代码出现以下错误,有什么问题?

错误:

函数 'void boost::put(const boost::put_get_helper&, K, const V&) [with PropertyMap = boost::associative_property_map, std::allocator >

, 参考 = unsigned int&, K = void*, V = int]':| C:\Users\memo\Desktop\Debuged\boostGraph\main.cpp|39|从这里实例化| c:\program files\codeblocks\mingw\bin..\lib\gcc\mingw32\4.4.1........\include\boost\property_map\property_map.hpp|361|error: no match for ' operator[]' in '(const boost::associative_property_map, std::allocator > > >&)((const boost::associative_property_map, std::allocator > > >*)(& pa))[k]'| c:\program files\codeblocks\mingw\bin..\lib\gcc\mingw32\4.4.1........\include\boost\property_map\property_map.hpp|498|注意:候选者是:typename UniquePairAssociativeContainer::value_type::second_type& boost::associative_property_map::operator[](const typename UniquePairAssociativeContainer::key_type& ) const [与 UniquePairAssociativeContainer = std::map, std::allocator > >]| ||=== 构建完成:1 个错误,0 个警告 ===|

谢谢

0 投票
1 回答
2755 浏览

c++ - BGL 中边缘的自定义属性

0 投票
3 回答
332 浏览

c++ - 我可以用我自己的班级包装升压图吗

我正在尝试使用boost::adjacency_matrix graph 作为成员来创建我自己的类,但我遇到了编译错误。无法编译的示例类:

和编译错误:

看起来那个编译器认为Graph是一个函数?!

谁能告诉我,如何将boost::adjacency_matrix声明为我班级的成员?

0 投票
1 回答
1832 浏览

c++ - Boost graphviz 自定义顶点标签

目前我有一个项目的以下代码,它代表一些概率树,并为顶点和边类型使用自定义结构:

我目前使用 boost graphviz 对一些简单的树进行了简单的视觉表示,但没有标签。我希望用 Edge 结构中找到的概率标记顶点之间的连接,以及用 Vertex 结构中找到的关联名称标记顶点之间的连接。我第一次尝试这样做是使用以下代码:

但这似乎不符合我的要求,因为它不输出顶点的名称。我应该在这里改变什么?

0 投票
2 回答
1813 浏览

c++ - C++ 和通用图距离算法

我的问题如下。我正在通过编写图形库来学习 C++,并希望尽可能多地使用通用编程技术;因此,通过“使用 BOOST”回答我的问题对我没有帮助;事实上,我尝试通过 BOOST 的代码来寻找我的问题的答案,但这是一次令人沮丧的经历,因为我什至无法弄清楚某些函数的定义位置;在我的水平上学习它的 C++ 水平太高了。

也就是说,我的库是通过以下方式模板化的:

我正在通过使用从边或节点派生的类来创建更复杂的图,因此加权边类将很简单

现在的问题是我想在这个结构上实现一个算法,计算两个顶点之间的最短距离。我可以轻松编写其中的两个,一个用于加权边缘,一个用于未加权,但变化很小:一个将访问weighted_edge(或派生类)的成员字段,另一个将采用单一权重。

有没有办法做到这一点,这样我就可以在这两种情况下只使用一段代码?

一种解决方案是使用一个成员函数edge::get_weight()来返回权重(或在未加权的情况下为“1”),但这会迫使我为未加权的边缘类使用特定的权重类型,所以它闻起来很有趣。我的意思是,模板需要是

这并不完全是用户友好的,或者至少是令人困惑的,因为您不希望涉及任何权重。

BGL 使用get()函数来获取权重;我可以编写一个返回 1 或weight取决于的函数edge_T,但我关心的是当一个从edgeor派生时会发生什么weighted_edge?如果有人写:

如果通过派生类会发生什么?是否有 C++ 机制可以从这两个中选择“更接近”的基类?

0 投票
1 回答
1150 浏览

c++ - 比较两个具有相同顶点的提升图

可能是一个新手问题,我需要你的帮助来比较两个图,顶点的数量和名称相同。

我的主题大纲是:

提前致谢。

0 投票
2 回答
1972 浏览

c++ - 与 boost 图形库中的 std::vector 关联的外部属性映射

我目前正在尝试定义升压图的外部属性。我使用一些捆绑的属性作为内部属性:

但是,在算法期间,我需要一些外部属性,即我希望能够将图形的边/顶点映射到存储在 std::vector 中的元素,以便我可以通过 operator[] 访问它们(Edge e)。我毫无头绪地站在 boost 文档前。似乎我需要一个property_map,但我不知道如何将它们与向量一起使用。到目前为止,我发现的唯一示例涉及从顶点到向量的映射,但由于顶点是无符号整数,因此这是微不足道的。

到目前为止,我对 boost 感到非常沮丧,我认为它可以为我节省大量时间来实现和测试一个图形类,我真的没有得到这个疯狂的模板元编程的东西......

0 投票
1 回答
811 浏览

c++ - How to add custom edge label in boost graph?

I am using boost graph of type:

Now i have to add sting type edge label for each edge of the graph, further i could use them in my program to distinguish different kind of edges.

Please share you idea, thanks in advance.