summaryrefslogtreecommitdiff
path: root/boost/graph/graph_utility.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/graph/graph_utility.hpp')
-rw-r--r--boost/graph/graph_utility.hpp58
1 files changed, 25 insertions, 33 deletions
diff --git a/boost/graph/graph_utility.hpp b/boost/graph/graph_utility.hpp
index f1f120e304..b7278b6b4d 100644
--- a/boost/graph/graph_utility.hpp
+++ b/boost/graph/graph_utility.hpp
@@ -18,14 +18,6 @@
#include <boost/config.hpp>
#include <boost/tuple/tuple.hpp>
-#if !defined BOOST_NO_SLIST
-# ifdef BOOST_SLIST_HEADER
-# include BOOST_SLIST_HEADER
-# else
-# include <slist>
-# endif
-#endif
-
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/properties.hpp>
#include <boost/pending/container_traits.hpp>
@@ -154,84 +146,84 @@ namespace boost {
// -JGS
template <class IncidenceGraph, class Name>
- void print_in_edges(const IncidenceGraph& G, Name name)
+ void print_in_edges(const IncidenceGraph& G, Name name, std::ostream& os = std::cout)
{
typename graph_traits<IncidenceGraph>::vertex_iterator ui,ui_end;
for (boost::tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
- std::cout << get(name,*ui) << " <-- ";
+ os << get(name,*ui) << " <-- ";
typename graph_traits<IncidenceGraph>
::in_edge_iterator ei, ei_end;
for(boost::tie(ei,ei_end) = in_edges(*ui,G); ei != ei_end; ++ei)
- std::cout << get(name,source(*ei,G)) << " ";
- std::cout << std::endl;
+ os << get(name,source(*ei,G)) << " ";
+ os << '\n';
}
}
template <class IncidenceGraph, class Name>
- void print_graph_dispatch(const IncidenceGraph& G, Name name, directed_tag)
+ void print_graph_dispatch(const IncidenceGraph& G, Name name, directed_tag, std::ostream& os = std::cout)
{
typename graph_traits<IncidenceGraph>::vertex_iterator ui,ui_end;
for (boost::tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
- std::cout << get(name,*ui) << " --> ";
+ os << get(name,*ui) << " --> ";
typename graph_traits<IncidenceGraph>
::out_edge_iterator ei, ei_end;
for(boost::tie(ei,ei_end) = out_edges(*ui,G); ei != ei_end; ++ei)
- std::cout << get(name,target(*ei,G)) << " ";
- std::cout << std::endl;
+ os << get(name,target(*ei,G)) << " ";
+ os << '\n';
}
}
template <class IncidenceGraph, class Name>
- void print_graph_dispatch(const IncidenceGraph& G, Name name, undirected_tag)
+ void print_graph_dispatch(const IncidenceGraph& G, Name name, undirected_tag, std::ostream& os = std::cout)
{
typename graph_traits<IncidenceGraph>::vertex_iterator ui,ui_end;
for (boost::tie(ui,ui_end) = vertices(G); ui != ui_end; ++ui) {
- std::cout << get(name,*ui) << " <--> ";
+ os << get(name,*ui) << " <--> ";
typename graph_traits<IncidenceGraph>
::out_edge_iterator ei, ei_end;
for(boost::tie(ei,ei_end) = out_edges(*ui,G); ei != ei_end; ++ei)
- std::cout << get(name,target(*ei,G)) << " ";
- std::cout << std::endl;
+ os << get(name,target(*ei,G)) << " ";
+ os << '\n';
}
}
template <class IncidenceGraph, class Name>
- void print_graph(const IncidenceGraph& G, Name name)
+ void print_graph(const IncidenceGraph& G, Name name, std::ostream& os = std::cout)
{
typedef typename graph_traits<IncidenceGraph>
::directed_category Cat;
- print_graph_dispatch(G, name, Cat());
+ print_graph_dispatch(G, name, Cat(), os);
}
template <class IncidenceGraph>
- void print_graph(const IncidenceGraph& G) {
- print_graph(G, get(vertex_index, G));
+ void print_graph(const IncidenceGraph& G, std::ostream& os = std::cout) {
+ print_graph(G, get(vertex_index, G), os);
}
template <class EdgeListGraph, class Name>
- void print_edges(const EdgeListGraph& G, Name name)
+ void print_edges(const EdgeListGraph& G, Name name, std::ostream& os = std::cout)
{
typename graph_traits<EdgeListGraph>::edge_iterator ei, ei_end;
for (boost::tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
- std::cout << "(" << get(name, source(*ei, G))
+ os << "(" << get(name, source(*ei, G))
<< "," << get(name, target(*ei, G)) << ") ";
- std::cout << std::endl;
+ os << '\n';
}
template <class EdgeListGraph, class VertexName, class EdgeName>
- void print_edges2(const EdgeListGraph& G, VertexName vname, EdgeName ename)
+ void print_edges2(const EdgeListGraph& G, VertexName vname, EdgeName ename, std::ostream& os = std::cout)
{
typename graph_traits<EdgeListGraph>::edge_iterator ei, ei_end;
for (boost::tie(ei, ei_end) = edges(G); ei != ei_end; ++ei)
- std::cout << get(ename, *ei) << "(" << get(vname, source(*ei, G))
+ os << get(ename, *ei) << "(" << get(vname, source(*ei, G))
<< "," << get(vname, target(*ei, G)) << ") ";
- std::cout << std::endl;
+ os << '\n';
}
template <class VertexListGraph, class Name>
- void print_vertices(const VertexListGraph& G, Name name)
+ void print_vertices(const VertexListGraph& G, Name name, std::ostream& os = std::cout)
{
typename graph_traits<VertexListGraph>::vertex_iterator vi,vi_end;
for (boost::tie(vi,vi_end) = vertices(G); vi != vi_end; ++vi)
- std::cout << get(name,*vi) << " ";
- std::cout << std::endl;
+ os << get(name,*vi) << " ";
+ os << '\n';
}
template <class Graph, class Vertex>