1 //=======================================================================
2 // Copyright 2001 Jeremy G. Siek, Andrew Lumsdaine, Lie-Quan Lee,
4 // Distributed under the Boost Software License, Version 1.0. (See
5 // accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt)
7 //=======================================================================
8 #include <boost/config.hpp>
10 #include <boost/graph/adjacency_list.hpp>
12 using namespace boost
;
14 template < typename Graph
> void
15 read_graph_file(std::istream
& in
, Graph
& g
)
17 typedef typename graph_traits
< Graph
>::vertex_descriptor Vertex
;
18 typedef typename graph_traits
< Graph
>::vertices_size_type size_type
;
20 in
>> n_vertices
; // read in number of vertices
21 std::vector
< Vertex
> vertex_set(n_vertices
);
22 for (size_type i
= 0; i
< n_vertices
; ++i
)
23 vertex_set
[i
] = add_vertex(g
);
28 add_edge(vertex_set
[u
], vertex_set
[v
], g
);
37 typedef adjacency_list
< listS
, // Store out-edges of each vertex in a std::list
38 vecS
, // Store vertex set in a std::vector
39 directedS
// The graph is directed
42 graph_type g
; // use default constructor to create empty graph
43 std::ifstream
file_in("makefile-dependencies.dat");
44 read_graph_file(file_in
, g
);
46 assert(num_vertices(g
) == 15);
47 assert(num_edges(g
) == 19);