next up previous contents
Next: Node Attribute Accessors (node_attribute_da) Up: Graphs and Iterators Previous: Constant Accessors (constant_da)

   
Node Member Accessors (node_member_da)

Definition

An instance da of class node_member_da<Str,T> manages the access to a node parameter that is organized as a member of a struct type, which is the first template argument of a parameterized graph GRAPH<Str,?>. The parameter is of type T and the struct of type Str.

Classes edge_member_da<Str,T> is defined completely analogously.

Creation

node_member_da<Str,T> da; introduces a variable da of this class that is not bound.

node_member_da<Str,T>

da(Ptr ptr); introduces a variable da of this class, which is bound to ptr.

   

Operations

T get(node_member_da<Str,T> ma, Iter it)
    returns the associated value of it for this accessor.
void set(node_member_da<Str,T>& ma, Iter it, T val)
    sets the associated value of it for this accessor to the given value.

Implementation

Constant Overhead. The instance da accesses its parameter through a pointer to member of type Ptr, which is defined for example by typedef T Str::*Ptr.

Example

We have a parameterized graph G where the node information type is the following struct type Str:

  struct Str {
    int x;
    color col; };
We want to count the number of red nodes. Since we have the template function of sect. node_array_da we can easily use it to do the computation:
  int count_red(GRAPH<Str,double> G) {
    node_member_da<Str,color> Color(&Str::col);
    return count_red_t(G,Color); }


next up previous contents
Next: Node Attribute Accessors (node_attribute_da) Up: Graphs and Iterators Previous: Constant Accessors (constant_da)
LEDA research project
1998-10-02