Overview | Modules | Class Hierarchy | Classes | Members

Public Member Functions
tlp::StlFilterIterator< VALUE, ITERATOR, FILTER > Class Template Reference
Iterator

Iterator that enables to filter a Stl Iterator. More...

`#include <stlfilteriterator.h>`

Inheritance diagram for tlp::StlFilterIterator< VALUE, ITERATOR, FILTER >:
[legend]
Collaboration diagram for tlp::StlFilterIterator< VALUE, ITERATOR, FILTER >:
[legend]

List of all members.

## Public Member Functions

- StlFilterIterator (const ITERATOR &startIt, const ITERATOR &endIt, FILTER filter)
- VALUE next ()
    Moves the Iterator on the next element.
- bool hasNext ()
    Tells if the sequence is at its end.

## Detailed Description

### template<typename VALUE, typename ITERATOR, typename FILTER>
class tlp::StlFilterIterator< VALUE, ITERATOR, FILTER >

Iterator that enables to filter a Stl Iterator.

Parameters:

  startIt | the beginning of the iterator that should be filtered (begin())
  endIt | the end of the iterator that should be filtered (begin())
  filter | the functor that enables to test wheter or not an element is filtered

That example enable to iterate only of elements greater than 50;

     class GreaterFilter {
      GreaterFilter(double threshold):_t(threshold){
      }
      bool operator()(double a) {
        return a < _t;
      }
     };
     int main() {
     vector<double> vec(100);
     for (size_t j=0; j<100; ++j)
        vec[j] = j;
     GreaterFilter filter(50);
     double x;
     forEach(x, new StlFilterIterator<double, vector<double>::const_iterator>(vec.begin(), vec.end(), filter)) {
       cout << x << endl;
     }

## Constructor & Destructor Documentation

template<typename VALUE , typename ITERATOR , typename FILTER >

tlp::StlFilterIterator< VALUE, ITERATOR, FILTER >::StlFilterIterator | ( | const ITERATOR & | startIt,
|  | const ITERATOR & | endIt,
|  | FILTER | filter
| ) |  | `[inline]`

## Member Function Documentation

template<typename VALUE , typename ITERATOR , typename FILTER >

bool tlp::StlFilterIterator< VALUE, ITERATOR, FILTER >::hasNext | ( |  | ) | `[inline, virtual]`

Tells if the sequence is at its end.

Returns:
  bool Whether there are more elements to iterate on.

Implements tlp::Iterator< VALUE >.

template<typename VALUE , typename ITERATOR , typename FILTER >

VALUE tlp::StlFilterIterator< VALUE, ITERATOR, FILTER >::next | ( |  | ) | `[inline, virtual]`

Moves the Iterator on the next element.

Returns:
  The current element pointed by the Iterator.

Implements tlp::Iterator< VALUE >.

Tulip Software by LaBRI Visualization Team 2001 - 2012