使用Boost图库的adjacency_matrix

时间:2015-06-15 18:51:47

标签: c++ boost

我必须包含<boost/graph/adjacency_list.hpp>来构建adjacency_matrix,否则代码将无法编译。

我不明白为什么,我看到的那些例子不需要它。

#include <boost/graph/adjacency_matrix.hpp>
#include <boost/graph/graph_utility.hpp>
using namespace boost;

typedef boost::adjacency_matrix< directedS > MatrixGraph;

int main(){
    const char* name = "ABCD";
    MatrixGraph mg(3);
    add_edge (0, 1, mg);
    add_edge (0, 3, mg);
    add_edge (1, 2, mg);
    add_edge (2, 3, mg);
    boost::print_vertices(mg,name);
}

1 个答案:

答案 0 :(得分:1)

您忘记列出错误消息。

但我认为我在GCC 4.9上用Boost 1.58复制了它;

/home/sehe/custom/boost_1_58_0/boost/graph/detail/edge.hpp|111 col 10| error: ‘hash’ is not a class template
||    struct hash<boost::detail::edge_desc_impl<D, V> >

修复

#include <boost/functional/hash.hpp>