]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/graph/example/copy-example.cpp
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/copy.hpp>
11 #include <boost/graph/adjacency_list.hpp>
12 #include <boost/graph/graph_utility.hpp>
17 using namespace boost
;
18 typedef adjacency_list
< vecS
, vecS
, directedS
,
19 property
< vertex_name_t
, char > > graph_t
;
22 { a
, b
, c
, d
, e
, f
, g
, N
};
24 property_map
< graph_t
, vertex_name_t
>::type
25 name_map
= get(vertex_name
, G
);
27 graph_traits
< graph_t
>::vertex_iterator v
, v_end
;
28 for (boost::tie(v
, v_end
) = vertices(G
); v
!= v_end
; ++v
, ++name
)
31 typedef std::pair
< int, int >E
;
32 E edges
[] = { E(a
, c
), E(a
, d
), E(b
, a
), E(b
, d
), E(c
, f
),
33 E(d
, c
), E(d
, e
), E(d
, f
), E(e
, b
), E(e
, g
), E(f
, e
), E(f
, g
)
35 for (int i
= 0; i
< 12; ++i
)
36 add_edge(edges
[i
].first
, edges
[i
].second
, G
);
38 print_graph(G
, name_map
);
39 std::cout
<< std::endl
;
42 copy_graph(G
, G_copy
);
44 print_graph(G_copy
, name_map
);