Hello All,

I need a small help in iterating through the  vertices and edges of a   filtered graph.

Here is some sample code of the  filtered graph. (http://programmingexamples.net/wiki/CPP/Boost/BGL/FilteredGraph)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <iostream>
 
#include <boost/graph/adjacency_list.hpp>
#include <boost/array.hpp>
#include <boost/graph/filtered_graph.hpp>
#include <boost/graph/graph_utility.hpp>
 
template <typename TGraph>
struct vertex_id_filter
{
  bool operator()(const typename boost::graph_traits<TGraph>::vertex_descriptor& v) const
  {
    return 3 < v; // keep all vertx_descriptors greater than 3
  }
};
 
int main()
{
  using namespace boost;
 
  typedef adjacency_list<vecS, vecS, directedS,
    no_property, property<edge_weight_t, int> > Graph;
  typedef property_map<Graph, edge_weight_t>::type EdgeWeightMap;
 
  unsigned int numberOfVertices = 10;
  Graph g(numberOfVertices);
  for(unsigned int i = 0; i < numberOfVertices - 1; ++i)
    {
    add_edge(i, i+1, g);
    }
 
  std::cout << "Original graph:" << std::endl;
  boost::print_graph(g);
 
  vertex_id_filter<Graph> filter;
  filtered_graph<Graph, boost::keep_all, vertex_id_filter<Graph> > filteredGraph(g, boost::keep_all(), filter); // (graph, EdgePredicate, VertexPredicate)
 
  std::cout << "Filtered graph:" << std::endl;
  boost::print_graph(filteredGraph);
  return 0;
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Here is my question.

How do I  iterate through the   vertices and  edges of  "filteredGraph".
I wanted to use the  functions

vertices( filteredGraph)  and   edges(filteredGraph) 

seems that we cannot use these functions  as in the case of filtered graphs they return filtered_iterators.

Please, can some one  extend the above  example  and show me how to iterate through the vertices and edges.


Thanks and Regards,
Srinivas Boppu