next up previous contents index
Next: Face Maps ( face_map Up: Graphs and Related Data Previous: Node Maps ( node_map   Contents   Index


Edge Maps ( edge_map )

Definition

An instance of the data type edge_map<E> is a map for the edges of a graph G, i.e., equivalent to map<edge,E> (cf. Maps). It can be used as a dynamic variant of the data type edge_array (cf. Edge Arrays). New: Since edge_map<E> is derived from edge_array<E> edge maps can be passed (by reference) to functions with edge array parameters. In particular, all LEDA graph algorithms expecting an edge_array<E>& argument can be passed an edge_map<E>& instead.

#include < LEDA/graph/edge_map.h >

Creation

edge_map<E> M introduces a variable M of type edge_map<E> and initializes it to the map with empty domain.

edge_map<E> M(const graph_t& G) introduces a variable M of type edge_map<E> and initializes it with a mapping m from the set of all edges of G into the set of variables of type E. The variables in the range of m are initialized by a call of the default constructor of type E.

edge_map<E> M(const graph_t& G, E x) introduces a variable M of type edge_map<E> and initializes it with a mapping m from the set of all edges of G into the set of variables of type E. The variables in the range of m are initialized with a copy of x.

Operations

const graph_t& M.get_graph() returns a reference to the graph of M.

void M.init() makes M a edge map with empty domain.

void M.init(const graph_t& G) makes M a mapping m from the set of all edges of G into the set of variables of type E. The variables in the range of m are initialized by a call of the default constructor of type E.

void M.init(const graph_t& G, E x)
    makes M a mapping m from the set of all edges of G into the set of variables of type E. The variables in the range of m are initialized with a copy of x.

bool M.use_edge_data(const graph_t& G, E x)
    use free data slots in the edges of G (if available) for storing the entries of A. The number of additional data slots in the nodes and edges of a graph can be specified in the graph::graph(int n_slots, int e_slots) constructor. The result is true if a free slot is available and false otherwise.

E& M[edge e] returns the variable M(v).

Implementation

Edge maps are implemented by an efficient hashing method based on the internal numbering of the edges. An access operation takes expected time O(1).


next up previous contents index
Next: Face Maps ( face_map Up: Graphs and Related Data Previous: Node Maps ( node_map   Contents   Index