2015-06-15 2 views
1

Я должен включить <boost/graph/adjacency_list.hpp> для создания adjacency_matrix, иначе код не сможет скомпилироваться.Использование adjacency_matrix библиотеки Boost Graph

Я не понимаю, почему, те примеры, которые я видел, не нуждаются в этом.

#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

Смежные вопросы