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.
#include < LEDA/graph _iterator.h >
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); }