gpt4 book ai didi

boost - 为什么我不能使用带有 OutEdgeList=listS 和 VertexList=listS 的 boost 图 write_graphviz

转载 作者:行者123 更新时间:2023-12-04 18:51:21 26 4
gpt4 key购买 nike

为什么我不能编译以下简单的应用程序。如果我将 listS 更改为 vecS,则一切正常。 (我使用的是 boost 1.46.1 和 gcc 4.4.5)

#include <iostream>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/graphviz.hpp>

int main(int argc, const char *argv[]) {
boost::adjacency_list< boost::listS, boost::listS, boost::bidirectionalS > g;

boost::write_graphviz(std::cout, g);

return 0;
}

最佳答案

write_graphviz需要 vertex_id属性以显示顶点标识符标签。安 adjacency_list使用 listS因为顶点容器不会自动提供这个 vertex_id属性(property)。这种行为是有道理的,因为在链表中,没有可用于唯一标识元素的键或索引之类的东西。请记住,链表既不是随机访问序列,也不是关联容器。

您要么必须提供自己的 vertex_id属性 getter,或使用具有固有 vertex_id 的顶点容器属性(property)。

关于boost - 为什么我不能使用带有 OutEdgeList=listS 和 VertexList=listS 的 boost 图 write_graphviz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5781301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com