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

Vertex Iterator Type 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.
Vertices Size Type 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 VertexListGraph_concept
  {
    typedef typename boost::graph_traits<G>::vertex_iterator 
      vertex_iterator;
    void constraints() {
      REQUIRE(G, AdjacencyGraph);
      REQUIRE(vertex_iterator, MultiPassInputIterator);

      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)