C++ Boost

VertexListGraph

The VertexListGraph concept refines the AdjacencyGraph concept, and adds the requirement for efficient traversal of all the vertices in the graph.

Refinement of

AdjacencyGraph

Associated Types

boost::graph_traits<G>::vertex_iterator

A vertex iterator (obtained via vertices(g)) provides access to all of the vertices in a graph. A vertex iterator type must meet the requirements of MultiPassInputIterator. The value type of the vertex iterator must be the vertex descriptor of the graph.
boost::graph_traits<G>::vertices_size_type

The unsigned integer type used to represent the number of vertices in the graph.

Valid Expressions

NameExpressionReturn TypeDescription
Vertex Set of the Graph vertices(g) std::pair<vertex_iterator, vertex_iterator> Returns an iterator-range providing access to all the vertices in the graphg.
Number of Vertices in the Graph num_vertices(g) vertices_size_type Returns the number of vertices in the graph g.

Complexity guarantees

The vertices() function must return in constant time.

See Also

Graph concepts

Concept Checking Class

  template <class G>
  struct VertexListGraphConcept
  {
    typedef typename boost::graph_traits<G>::vertex_iterator 
      vertex_iterator;
    void constraints() {
      function_requires< AdjacencyGraphConcept<G> >();
      function_requires< MultiPassInputIteratorConcept<vertex_iterator> >();

      p = vertices(g);
      V = num_vertices(g);
      v = *p.first;
      const_constraints(g);
    }
    void const_constraints(const G& g) {
      p = vertices(g);
      V = num_vertices(g);
      v = *p.first;
    }
    std::pair<vertex_iterator, vertex_iterator> p;
    typename boost::graph_traits<G>::vertex_descriptor v;
    typename boost::graph_traits<G>::vertices_size_type V;
    G g;
  };


Copyright © 2000 Jeremy Siek, Univ.of Notre Dame (jsiek@lsc.nd.edu)