Пишу код из примера A Quick Tour of the Boost Graph Library
#include <iostream> // for std::cout
#include <utility> // for std::pair
#include <algorithm> // for std::for_each
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/dijkstra_shortest_paths.hpp>
using namespace boost;
int main(int,char*[])
{
typedef adjacency_list<listS, vecS, directedS,
no_property, property<edge_weight_t, int> > Graph;
typedef graph_traits<Graph>::vertex_descriptor Vertex;
typedef std::pair<int,int> E;
const int num_nodes = 5;
E edges[] = { E(0,2),
E(1,1), E(1,3), E(1,4),
E(2,1), E(2,3),
E(3,4),
E(4,0), E(4,1) };
int weights[] = { 1, 2, 1, 2, 7, 3, 1, 1, 1};
//здесь недоволен
Graph G(edges + sizeof(edges) / sizeof(E), weights, num_nodes);
return 0;
}
эта ошибка говорит о том, что ты забыл подключить какой-то файл, в котором определяется одна из используемых функций.
или не обязательно функций, например например не может найти определение property<edge_weight_t, int> или еще какое, прошерсти все ли include подключены...
Оказалось, что все просто - пропустил запятую
Graph G(edges, edges + sizeof(edges) / sizeof(E), weights, num_nodes);
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)