summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/graph/example/default-constructor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/graph/example/default-constructor.cpp')
-rw-r--r--src/boost/libs/graph/example/default-constructor.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/boost/libs/graph/example/default-constructor.cpp b/src/boost/libs/graph/example/default-constructor.cpp
new file mode 100644
index 00000000..00e1298c
--- /dev/null
+++ b/src/boost/libs/graph/example/default-constructor.cpp
@@ -0,0 +1,46 @@
+//=======================================================================
+// Copyright 2001 Jeremy G. Siek, Andrew Lumsdaine, Lie-Quan Lee,
+//
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+//=======================================================================
+#include <boost/config.hpp>
+#include <fstream>
+#include <boost/graph/adjacency_list.hpp>
+
+using namespace boost;
+
+template < typename Graph > void
+read_graph_file(std::istream & in, Graph & g)
+{
+ typedef typename graph_traits < Graph >::vertices_size_type size_type;
+ size_type n_vertices;
+ in >> n_vertices; // read in number of vertices
+ for (size_type i = 0; i < n_vertices; ++i) // Add n vertices to the graph
+ add_vertex(g);
+ size_type u, v;
+ while (in >> u) // Read in pairs of integers as edges
+ if (in >> v)
+ add_edge(u, v, g);
+ else
+ break;
+}
+
+
+int
+main(int argc, const char** argv)
+{
+ typedef adjacency_list < listS, // Store out-edges of each vertex in a std::list
+ vecS, // Store vertex set in a std::vector
+ directedS // The graph is directed
+ > graph_type;
+
+ graph_type g; // use default constructor to create empty graph
+ std::ifstream file_in(argc >= 2 ? argv[1] : "makefile-dependencies.dat");
+ read_graph_file(file_in, g);
+
+ assert(num_vertices(g) == 15);
+ assert(num_edges(g) == 19);
+ return 0;
+}