diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/boost/libs/graph/example/edge_connectivity.cpp | |
parent | Initial commit. (diff) | |
download | ceph-upstream.tar.xz ceph-upstream.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/graph/example/edge_connectivity.cpp')
-rw-r--r-- | src/boost/libs/graph/example/edge_connectivity.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/boost/libs/graph/example/edge_connectivity.cpp b/src/boost/libs/graph/example/edge_connectivity.cpp new file mode 100644 index 000000000..2e05a8b4c --- /dev/null +++ b/src/boost/libs/graph/example/edge_connectivity.cpp @@ -0,0 +1,63 @@ +//======================================================================= +// Copyright 2000 University of Notre Dame. +// Authors: 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) +//======================================================================= + +/* + IMPORTANT!!! + ~~~~~~~~~~~~ + This example uses interfaces that have been deprecated and removed from + Boost.Grpah. Someone needs to update it, as it does NOT compile. +*/ + +#include <boost/config.hpp> +#include <set> +#include <iostream> +#include <iterator> +#include <algorithm> +#include <boost/graph/adjacency_list.hpp> +#include <boost/graph/edge_connectivity.hpp> + +using namespace boost; + +int main() +{ + const int N = 8; + typedef adjacency_list< vecS, vecS, undirectedS > UndirectedGraph; + UndirectedGraph g(N); + + add_edge(0, 1, g); + add_edge(0, 2, g); + add_edge(0, 3, g); + add_edge(1, 2, g); + add_edge(1, 3, g); + add_edge(2, 3, g); + add_edge(3, 4, g); + add_edge(3, 7, g); + add_edge(4, 5, g); + add_edge(4, 6, g); + add_edge(4, 7, g); + add_edge(5, 6, g); + add_edge(5, 7, g); + add_edge(6, 7, g); + + typedef graph_traits< UndirectedGraph >::edge_descriptor edge_descriptor; + typedef graph_traits< UndirectedGraph >::degree_size_type degree_size_type; + std::vector< edge_descriptor > disconnecting_set; + + degree_size_type c + = edge_connectivity(g, std::back_inserter(disconnecting_set)); + + std::cout << "The edge connectivity is " << c << "." << std::endl; + std::cout << "The disconnecting set is {"; + + std::copy(disconnecting_set.begin(), disconnecting_set.end(), + std::ostream_iterator< edge_descriptor >(std::cout, " ")); + std::cout << "}." << std::endl; + + return 0; +} |