     Next: Constant Accessors ( constant_da Up: Graphs and Iterators Previous: STL Iterator Wrapper (   Contents   Index

# Node Array Data Accessor ( node_array_da )

Definition

An instance da of class node_array_da<T> is instantiated with a LEDA node_array<T>.

The data in the node array can be accessed by the functions get(da,it) and set(da,it,value) that take as parameters an instance of node_array_da<T> and an iterator, see below.

node_array_da<T>::value_type is a type and equals T.

For node_map<T> there is the variant node_map_da<T> which is defined completely analogous to node_array_da<T>. Classes edge_array_da<T> and edge_map_da<T> are defined analogously, as well.

#include < LEDA/graph/graph_iterator.h >

Creation

 node_array_da da introduces a variable da of this class that is not bound. node_array_da da(leda::node_array& na) introduces a variable da of this class bound to na.

Operations

 T get(const node_array_da& da, const Iter& it) returns the associated value of it for this accessor. void set(node_array_da& da, const Iter& it, T val) sets the associated value of it for this accessor to the given value.

Implementation

Constant Overhead.

Example

We count the number of 'red nodes' in a parameterized graph G.

```  int count_red(graph G, node_array<color> COL) {
node_array_da<color> Color(COL);
int counter=0;
NodeIt it(G);
while (it.valid()) {
if (get(Color,it)==red) counter++;
it++; }
return counter;
}
```

Suppose we want to make this 'algorithm' flexible in the representation of colors. Then we could write this version:

```  template<class DA>
int count_red_t(graph G, DA Color) {
int counter=0;
NodeIt it(G);
while (it.valid()) {
if (get(Color,it)==red) counter++;
it++; }
return counter;
}
```

With the templatized version it is easily to customize it to match the interface of the version:

```  int count_red(graph G, node_array<color> COL) {
node_array_da<color> Color(COL);
return count_red_t(G,Color); }
```     Next: Constant Accessors ( constant_da Up: Graphs and Iterators Previous: STL Iterator Wrapper (   Contents   Index