Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Boost 输出边界权重_Boost_Boost Graph - Fatal编程技术网

Boost 输出边界权重

Boost 输出边界权重,boost,boost-graph,Boost,Boost Graph,我尝试遍历图的边并输出它们的边权重。不过我很困惑。我知道如何输出“边”,但实际上这只是一个定义边的(顶点,顶点)。那么,我是否将*edgePair.first索引到EdgeWightMap中,以获取从顶点*edgePair.first开始的边的权重?这不会编译:运算符不匹配在此代码中,EdgeWightProperty被声明为顶点属性而不是边属性,因此使用该属性插入边没有意义。尝试将boost::no_属性添加到EdgeWeightProperty之前的邻接属性列表中typedef。此外,您可能

我尝试遍历图的边并输出它们的边权重。不过我很困惑。我知道如何输出“边”,但实际上这只是一个定义边的(顶点,顶点)。那么,我是否将*edgePair.first索引到EdgeWightMap中,以获取从顶点*edgePair.first开始的边的权重?这不会编译:运算符不匹配在此代码中,
EdgeWightProperty
被声明为顶点属性而不是边属性,因此使用该属性插入边没有意义。尝试将
boost::no_属性
添加到
EdgeWeightProperty
之前的
邻接属性列表中
typedef。此外,您可能希望使用
get(edgewightmap,*edgePair.first)
而不是
operator[]
,因为这将适用于更多属性映射类型。

请参阅:以获取简单示例。
#include <iostream>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>

typedef boost::property<boost::edge_weight_t, double> EdgeWeightProperty;
typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, EdgeWeightProperty> Graph;

int main(int,char*[])
{
  // Create a graph object
  Graph g(2);

  EdgeWeightProperty e = 5;
  add_edge(0, 1, e, g);

  boost::property_map<Graph, boost::edge_weight_t>::type EdgeWeightMap = get(boost::edge_weight_t(), g);

  typedef boost::graph_traits<Graph>::edge_iterator edge_iter;
  std::pair<edge_iter, edge_iter> edgePair;
  for(edgePair = edges(g); edgePair.first != edgePair.second; ++edgePair.first)
  {
      std::cout << EdgeWeightMap[*edgePair.first] << " ";
  }

  return 0;
}