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
| Name | Expression | Return Type | Description |
| 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;
};