首页 文章
  • 1 votes
     answers
     views

    如何使用Boost Graph Library创建一个named_graph?

    我目前正在使用Boost Graph Library . 我需要独特的边和顶点 . 不幸的是,增强图形不提供此功能 . 因此,在插入边或顶点之前,每次都必须检查手册 . 现在我发现了这个:http://www.boost.org/doc/libs/1_49_0/boost/graph/named_graph.hpp我想知道这对我有用吗?因为文档中没有关于named_graph的说法,所以我不知道如...
  • 5 votes
     answers
     views

    迭代const boost :: graph的边权重

    我需要遍历图形的边缘并检查每条边的权重 . 我没有修改边缘,因此我的函数对图形采用const引用 . 但是,我知道获得边权重的唯一方法是访问属性映射,这似乎违反了const-ness . void printEdgeWeights(const Graph& graph) { typedef Graph::edge_iterator EdgeIterator; std::pair&l...
  • 8 votes
     answers
     views

    设计Boost图库中的捆绑属性

    我正在从Python(networkx)和C(BGL)中移植一些图形代码 . 在我的Python代码中,图的顶点和边是实现已 Build 接口的客户端定义的对象;我继续在他们身上调用一堆方法 . 一切都好 . 天真地看来,BGL似乎意味着支持具有“捆绑属性”的类似设计模式 . 这些基本上允许通过传递某些模板参数来定义顶点和边的自定义类型: adjacency_list<OutEdgeList...
  • 1 votes
     answers
     views

    Boost.Graph库:如何将boost :: is_isomorphism与命名顶点一起使用

    此问题类似于BGL: Example of isomorphism with vertex invariants 我正在研究一个Boost.Graph tutorial并且在没有属性的两个图上调用boost :: is_isomorphism很容易 . 但是当顶点现在有名字时,我无法使它工作 . 此代码显示: 如何使用命名顶点创建路径图(不重要) 我的测试代码 我的函数用于测试具有命名...
  • 1 votes
     answers
     views

    Boost Graph Library:检查图表是否有定向

    我正在编写一个函数,使用BGL对图形执行一些计算 . 计算的方式取决于图形是否有定向,但我想避免编写两个不同的函数,一个用于无向图,一个用于有向图 . 两种类型的图形定义如下 using namespace boost; // Undirected typedef adjacency_list<listS, vecS, undirectedS> UGraph; // Directed ...
  • 2 votes
     answers
     views

    BGL adjacency_list:如何使用vertex属性而不是描述符对out_edges进行排序

    使用BGL adjacency_list,我希望顶点的外边缘按目标顶点的属性排序 . 在BGL中,外边列表已经按目标顶点描述符排序,但我碰巧使用 listS 作为我的顶点容器,所以我的顶点描述符是 void* 指针 . 不幸的是,我已经能够使它发挥作用 . (见下面的代码 . ) 我在其中看到了一个很好的解决方案:boost graph library: deterministic order ...
  • 0 votes
     answers
     views

    Boost Graph Library - 提高顶点初始化速度?

    我有一个5811顶点的图形;只在运行时知道,因此可能是任何但通常小于6000.初始化顶点需要35毫秒的大量时间 . 我想知道是否有人建议如何提高顶点分配速度?我已经浏览了一些其他线程,但似乎没有明确的解决方案 . 编辑:由于每个顶点中存在的变量数量,需要35毫秒 //find amount of vertices required //... //35ms //initialize ver...
  • 1 votes
     answers
     views

    adjacency_list中的常量顶点id

    我想保留adjacency_list图(以及顶点组)的顶点和边的外部属性 . 我需要能够通过其属性访问顶点 . 例如,我想迭代分配了一些权重的所有顶点,并获得它们的边缘 . 但是,我还需要将我的顶点容器设置为setS . 在此容器中,添加\删除顶点可能会使顶点描述符无效 . 问题是外部属性现在可以映射到无效的vertex_descriptors . class manage_data { ... ...
  • 2 votes
     answers
     views

    用于隐式图的Boost Graph Library astar_search

    我想将 astar_search() 算法应用于随时间生成的隐式图 . 因此,图中新顶点的初始化非常复杂,并且需要在另一个数据结构中进行外部查找 . 我已经研究了很多使用 astar_search() 的示例,但是使用隐式图表却找不到很多 . 从使用隐式图的所有示例来看,[1]看起来最有希望 . 提出的解决方案的问题是, astar_search() 将const图引用( const Vertex...
  • 2 votes
     answers
     views

    boost :: dijkstra_shortest_paths覆盖内部图形权重?

    我正在使用Boost Graph Library来存储具有 double 边缘权重和 double 顶点权重的无向图 . 在我的代码中的几个地方,我需要应用Dijkstra的算法来搜索最短路径 . 这很有效,直到我决定用我自己的权重暂时覆盖存储的边权重(仅暂时,不应修改图权重) . 我的代码基本上是这样的: // Initial typedefs typedef boost::propert...
  • 7 votes
     answers
     views

    为什么有些Boost函数不需要使用名称空间前缀

    考虑这段代码(或live example): #include <iostream> #include <boost/graph/adjacency_list.hpp> #include <boost/range/iterator_range.hpp> using std::cout; int main() { boost::adjacency_lis...
  • 2 votes
     answers
     views

    在Boost Graph Library中,为什么添加边缘会使Edge迭代器失效(以及其他问题)?

    关于BGL documentation中图表"Summary of Descriptor and Iterator Invalidation"的几个问题: 为什么添加边会使边和邻接迭代器无效;为什么isn 't every column of the add_edge() row 910063 ? Wouldn' t只是追加进/出边缘列表? 如果图形是定向的,为什么删...
  • 1 votes
     answers
     views

    使用Bundled属性增强图形库

    我是BGL的新手并尝试使用BGL设置一个简单的最短路径查找程序,其中无向图被定义为具有自定义EdgeProperty和VertexProperty的邻接List . 我收到编译时错误,这归因于我在模板和Boost中的技能不足 . 代码如下: #include <boost/graph/adjacency_list.hpp> #include <boost/graph/direct...
  • 0 votes
     answers
     views

    使用索引增加图形边缘

    我试图从一组对(int,int)边(其中每个int代表一个顶点索引)定义一个带有无向边的图 . 每个这样的边缘都有自己的索引 . 问题是,我希望图的内部顶点索引与原始顶点索引一致 . 我还希望能够从边缘描述符中提取原始边缘索引 . 从http://www.boost.org/doc/libs/1_47_0/libs/graph/doc/using_property_maps.html( Exter...
  • 1 votes
     answers
     views

    使用带有笛卡尔点的增强连通分量

    我发现http://www.boost.org/doc/libs/1_49_0/libs/graph/example/incremental_components.cpp并想检查它是否适合我 . 如何转换此示例以处理带有(x,y)或(x,y,z)的笛卡尔点 . 我在boost的文档中找不到这样的例子 . 我看到我必须以某种方式重新定义顶点,因此需要在adjacency_list中进行更改 . 尝试...
  • 3 votes
     answers
     views

    boost图库定向多图edge_range bug

    我有一个带有顶点A..C和边E1..E4的有向多图 A ---E1--> B A ---E2--> B A ---E3--> B B ---E4--> C 我想迭代连接A和B的边缘 . 在BGL中,我将此表达为: #include <boost/graph/adjacency_list.hpp> struct Vertex { std::string c...
  • 0 votes
     answers
     views

    使用BFSVisitor在连接的组件中传播值? (Boost,C)?

    我正在构建一个提升图 . 对于图中的每个连通组件,我想为该连接组件中的每个顶点传播唯一的ID值 . 我想知道是否有办法使用 Boost 的 BFSVisitor 概念? 我猜这可以使用 examine_edge 函数(http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/BFSVisitor.html)完成,但我很难搞清楚实现这样的类 . 任何见解...
  • 3 votes
     answers
     views

    在Boost Graph Library中将自定义属性添加到网格的顶点

    我在我的机器人项目中使用Boost Graph Library进行 Map 管理 . 我打算使用Boost Grid,我发现Boost Graph文档真的很难理解,所以我需要一些帮助 . 这是我创建网格并打印它的方式: struct sampleVertex { int row; int col; bool occupied; }; boost::array&lt...
  • 2 votes
     answers
     views

    如何从boost图库中的边缘迭代器构造adjacency_list?

    我有一个与boost图库有关的问题 . boost::adajacency_list 有一系列边缘迭代器的构造函数和顶点数 . template <class EdgeIterator> adjacency_list(EdgeIterator first, EdgeIterator last, vertices_size_type n, ...
  • 1 votes
     answers
     views

    添加外部属性以包含图形中的vertix索引(boost)

    我正在尝试使用associative_property_map来包含顶点索引,但是我使用以下简单代码得到以下错误,问题是什么? #include <boost/graph/iteration_macros.hpp> #include <boost/graph/adjacency_list.hpp> using namespace std; using namespace ...
  • 2 votes
     answers
     views

    外部属性映射绑定到boost图库中的std :: vector

    我目前正在尝试定义增强图的外部属性 . 我使用一些捆绑属性作为内部属性: struct VertexProperties { int demand; }; struct EdgeProperties { uint capacity; int cost; }; typedef adjacency_list <vecS, vecS, bidirectionalS, Vertex...
  • 2 votes
     answers
     views

    boost :: graph自定义权重类型:numeric_limits必要吗?

    我在boost图中有自定义边属性( MyWeight ),并且想要应用Dijkstra最短路径搜索 . 我的体重类型是,在boost ::运算符的帮助下,可添加,可减少,低于可比性和相等性 . 因为我知道搜索必须从某个东西开始,我需要相当于零,并找出一个节点是否可达,这是非常大的 . MyWeight weight_zero(...), weight_inf(...); // now, weig...
  • 0 votes
     answers
     views

    将boost图中的内部属性转换为boost图中的外部属性容器

    参考我的问题enter link description here中提到的代码,我想转换内部属性 struct NodeInfo { int a , b , c; }; struct EdgeInfo { int timestamp; ... }; struct NodeInfoPropertyTag { // tag and kind (as in boost do...
  • 2 votes
     answers
     views

    如何在Boost图库中获取属性的类型

    在Boost Graph Library(BGL)中,如何以编程方式获取属性类型,例如与 boost::edge_weight_t 相关联的属性? 我搜索并找到了很多关于如何获取 property map 类型的示例,但没有找到属性本身的类型 . 例如,BGL documentation下面的 edge_weight_t 属性 Map 的类型为 property_map<DirectedGr...
  • 2 votes
     answers
     views

    adjexncy_list,其中VertexList与vecS不同

    我有两个包含一些字段的结构:struct MyNodeData和struct MyEdgeData . 当我创建一个VertexList为vecS的图形时,访问顶点描述符等没有问题 . 例如: typedef adjacency_list<setS, vecS, undirectedS, MyNodeData, MyEdgeData> Graph; typedef Graph::ve...
  • 2 votes
     answers
     views

    Boost Graph Library Polymorphic Bundled Properties

    所以我使用了以下类型的增强图: typedef boost::adjacency_list<boost::listS, boost::vecS, boost:directedS, VertexT, EdgeT> GraphT VertexT和EdgeT都是保留我需要的许多属性的类 . 这些是捆绑属性 . 我不确定我是否有可能使用bgl的方式,所以如果你熟悉它们,我们将非常感谢帮助 ....
  • 0 votes
     answers
     views

    使用Boost库生成图表,允许用户选择顶点数

    我想使用boost库生成一个图表,允许用户输入边数和顶点数 . 我基本上想做的是, 我希望用户输入顶点数并为每个顶点编号 . 我会授予用户使用数字作为参考选择顶点作为主顶点的权限 . 我希望用户在控制台中指定每个顶点的边数和边可以是随机的 . 有可能以某种方式使用BGL实现这一点吗?如果是这样,一个例子将是一个伟大的事情开始 . 非常感谢,提前, 干杯!!
  • 3 votes
     answers
     views

    如何访问boost子图'graph'属性?

    我使用adjacency_list和子图适配器来创建我的图表类型 . #include <boost/graph/subgraph.hpp> #include <boost/graph/adjacency_list.hpp> struct VertexProperties { bool bIsExpandable; string sId...
  • 3 votes
     answers
     views

    带边缘列表的自定义关联容器的BGL边(u,v,g)

    我刚刚开始学习bgl并且在使用带有自定义排序的std :: set作为adjacency_list中边缘列表的容器时遇到了问题 . 我定义了operator <来根据它们的属性对边进行排序,就像在ordered_out_edges.cpp示例中一样 . 这里boost :: edge_unique_ordering是一个自定义属性标记 . template < typename Edg...
  • 1 votes
     answers
     views

    BGL:邻接列表返回描述符的错误边缘属性

    我有一个图表存储为邻接列表 . vertex属性包含一个int ID,而edge属性包含一个4x4矩阵和一个权重; 在测试用例中,图形是一个3顶点图形,边缘连接每对顶点(一个完整的图形) . 我有一个边缘描述符 PathType 的向量,表示一个路径,我正在迭代它并访问每个边缘及其属性 RelationshipEdge ,如下所示 . for(PathType::iterator pathIte...

热门问题