问题标签 [boost-property-map]
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.
c++ - 专门为 boost::property_maps 中的枚举提供 boost::lexical_cast
我正在尝试使用在其捆绑的顶点属性内部boost::graph
具有的一个。enum
当我尝试将捆绑属性用于 boost::dynamic_property 时,问题就开始了。看起来我无法为 boost::lexical_cast 获得正确的模板专业化来识别类型。
如果我尝试enum
直接编写,一切正常。尝试将其放入动态属性时,出现以下错误:
该行Target type is neither std::istreamable nor std::wistreamable
向我表明, lexical_cast 没有正确专门化。然而,直接使用词法转换似乎工作得很好。
c++ - 使用 boost::adjacency_list 的自定义边属性迭代边
我正在开发一个使用 boost::adjacency_list 来表示图形的模拟程序。边缘具有服装设计属性
在尝试了几种方法之后,我还没有找到一种方法来创建一个 property_map,它返回每个边缘的完整 EdgeData,或者任何其他迭代和修改边缘的方法。有可能吗,如果有,怎么做?
c++ - 自定义 BGL 图与拓扑排序一起工作需要什么?
我已经创建了一个自定义 BGL 图模型,就像在这个答案中一样:What is needed to use BGL algorithms on existing data structure ( edges and vertices as vector<Object *>)? .
它采用了一个自定义数据结构,用于一些 Boost.Graph 算法。
链接的答案足以让深度优先搜索工作(Coliru),但我在使用时遇到了问题boost::topological_sort
:
给予:科利鲁
“胶水”层必须满足哪些额外要求才能使用boost::topological_sort
?在内部,拓扑排序使用depth_first_search
,但似乎它可能需要顶点索引图。
c++ - 如何在 BGL 中按(捆绑)属性提供的顺序迭代顶点和边?
说我有一些提升图
现在想以不同的顺序迭代顶点,比如:
- 通过它的 id
- 以随机顺序
- 下降
property_2
- 上升
property_1
- 以通用方式通过更多捆绑的属性降序/升序。
我如何以最有效的方式做到这一点?
到目前为止,我创建了std::vector
带有属性的 s 和包含索引的向量,并按属性对它们进行了排序。但是,如果您有许多属性可以创建大量可以避免的结构。
我还查看了boost::multi_index
地图,就像在这个 cplusplus.com 问题中一样,但这对我来说似乎也不是很渺茫。
我怎样才能做到这一点?对任何提示感到高兴!
c++ - 使用 Boost,如何将自定义边缘属性作为结构放置/获取?
我已经在这里阅读了文档(https://www.boost.org/doc/libs/1_75_0/libs/graph/doc/using_adjacency_list.html)和几个堆栈溢出页面两个小时,但没有取得任何进展在这里。我有一个图表,其中边缘既有距离又有坑洞的数量(撞到 3 个坑洞后车辆中断),所以我想我会使用自定义结构并设置边缘属性。
将其放在类声明之上:
编辑:我相信这是上述方法的替代方案,也没有运气:
类声明中的邻接图:
稍后在添加道路的功能中:
所以现在我正在尝试输入/获取道路信息,其中有多个错误,并且我尝试了很多变化:
通过注释掉不同的行,我发现问题似乎在于我如何获取属性图,但是在网上查看示例时,我觉得我正在做与他们完全相同的事情。
目标最终只是弄清楚如何添加道路信息以及以后如何获取它,因此可以接受完全不同的方法,我在这里所拥有的只是我尝试过的(不成功)但我觉得最多的有希望的结果。
c++ - Boost Graph 中边和顶点属性的时间复杂度/性能
考虑:
将边和顶点存储为std::list
排除通过[index]
.
进一步考虑属性映射是这样定义的。
即使无法通过 随机访问实际边/顶点[index]
,是否可以保证在随机访问下访问顶点名称和边的权重是高效且快速的,如下所示:
我的部分困惑来自于std::map
它也不支持随机访问的一般特征(见这里)
是否顶点存储为std::vector
orstd::list
或,无论如何,通过使用or的std::set
顶点描述符访问其属性映射总是保证有效(恒定时间)?some_map[vertex_descriptor]
some_map[*vertex_iterator]
c++ - Boost::Graph-algorithm 不使用 PropertyMap 写入数据(kamada_kawai_spring_layout,捆绑属性)
我有一个使用 Erdos-Renyi 边生成的随机连接节点的 adjacency_list 图。Graph_Node
该图通过为顶点 ( ) 和边 ( )定义数据结构来使用捆绑属性,这些数据结构Graph_Edge
用于分配节点的位置和边的权重。
我正在尝试使用强制导向的图形绘制来为节点分配好的位置,使用kamada_kawai_spring_layout
.
Graph_Node::Position
旨在使用 进行分配kamada_kawai_spring_layout
,但 中Position
的所有顶点g
都0,0
在分配之后。为什么?