【发布时间】:2015-07-21 13:15:31
【问题描述】:
我正在使用 Boost 库处理图形。 该图定义如下。
typedef boost::adjacency_list<boost::setS,boost::setS,boost::undirectedS, uint32_t, float> AdjacencyList;
在使用适当的数据创建图形后,我想在一个单独的函数中打印每个顶点的相邻顶点以及它们在开始时计算的适当边权重。
创建部分效果很好,但是当我想提取相邻顶点时,我没有得到值。
typedef boost::graph_traits<AdjacencyList>::adjacency_iterator AdjacencyIterator;
AdjacencyList::vertex_iterator i, end;
for (boost::tie(i, end) = boost::vertices(adjacency_list); i != end; i++) {
AdjacencyIterator ai, a_end;
boost::tie(ai, a_end) = boost::adjacent_vertices( *i, adjacency_list);
for (; ai != a_end; ai++) {
std::cout << *ai << "\t";
}
}
我得到的输出是十六进制数字的内存地址。 如何获取顶点索引和边权重?
【问题讨论】:
-
您实际上在那里使用了两个单独的图...您无法在在另一个图中中查找相邻顶点的顶点;你的实际代码是什么? (忽略了明显的语法错误和缺少声明)
-
adjacency_list 是 AdjacencyList 类型。这是同一张图,但我只是跳过了所有其他代码。
-
太棒了。
supervoxel_adjacency_list是什么?你知道,不值得在不恰当的问题上浪费时间。 -
抱歉,这是我程序中给出的名称,但我在写问题时从名称中删除了 supervoxel_ 到 adjacency_list