Distance Recorder

distance_recorder<DistanceMap, EventTag>

This is an EventVisitor that records the distance of a vertex (using a property map) from some source vertex during a graph search. When applied to edge e = (u,v), the distance of v is recorded to be one more than the distance of u. The distance recorder is typically used with the on_tree_edge or on_relax_edge events, and cannot be used with vertex events.

Use distance_recorder with graph algorithms by wrapping it with the algorithm specific adaptor, such as bfs_visitor and dfs_visitor. Also, combine this event visitor with other event visitors using std::pair to form an EventVisitorList.

Example

See the example for bfs_visitor.

Model of

EventVisitor

Where Defined

boost/graph/visitors.hpp

Template Parameters

Parameter Description Default
DistanceMap A WritablePropertyMap, where the key type and the value type are the vertex descriptor type of the graph.  
EventTag The tag to specify when the distance_recorder should be applied during the graph algorithm. EventTag must be an edge event.  


Associated Types

TypeDescription

distance_recorder::event_filter

This will be the same type as the template parameter EventTag.

Member Functions

Member Description
distance_recorder(DistanceMap pa); Construct a distance recorder object with distance property map pa.
template <class Edge, class Graph>
void operator()(Edge e, const Graph& g);
Given edge e = (u,v), this records the distance of v as one plus the distance of u.

Non-Member Functions

Function Description

template <class DistanceMap, class Tag>
distance_recorder<DistanceMap, Tag>
record_distances(DistanceMap pa, Tag);

A convenient way to create a distance_recorder.

See Also

Visitor concepts

The following are other event visitors: predecessor_recorder, time_stamper, and property_writer.


Copyright © 2000-2001
Jeremy Siek, Indiana University ([email protected])
Lie-Quan Lee, Indiana University ([email protected])
Andrew Lumsdaine, Indiana University ([email protected])

Top