2015-06-15 41 views
1

我必須包含<boost/graph/adjacency_list.hpp>來構建一個adjacency_matrix,否則代碼將無法編譯。使用Boost圖庫的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); 
} 
+0

不同版本在這些實施例中使用是'boost'的? –

回答

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> 
+0

是的,這是我的錯誤信息。謝謝您的回答。 – Rapidturtle