The Simple Functional Template Library
[[filter]]
 

filter

Definition

C<X> filter( C<X> container, F<X> functor );

where :

  • C is a container type (template)
  • F is the functor type (template)
  • X is the type of objects in the input container

Parameters

Parameter Description
container an STL container of type C holding objects type X
functor a functor taking a parameter of type X and returning a boolean value

Return value

A container of type C holding objects of type X

Description

Returns a container with the elements of the input container for which the functor returned true.

Examples

 
// source : examples/apply_example.cpp
 
#include <iostream>
#include <vector>
#include "sftl.h"
 
using namespace std;
 
bool is_even( int x ) { return (x&1)==0; }
 
bool is_even_r( int& x ) { return (x&1)==0; }
 
bool is_even_p( int* x ) { return ((*x)&1)==0; }
 
struct Number {
 
    int value;
 
    Number( int val ) : value(val) {}
 
    bool isEven () { return (value&1)==0; }
};
 
 
int main() {
    // create vector of numbers
    int numbers [] = {1,2,3,4,5,6,7,8,9};
    vector<int> v_numbers( &numbers[0], &numbers[9] );
 
    // filter with functions
    vector<int> evens_1 = filter( v_numbers, is_even );
    vector<int> evens_2 = filter( v_numbers, is_even_r );
    vector<int> evens_3 = filter( v_numbers, is_even_p );
 
    // create vector of Number objects
    vector<Number> v_Numbers( &numbers[0], &numbers[9] );
    // filter with class method
    vector<Number> evens_4 = filter( v_Numbers, &Number::isEven );
}
 
filter.txt · Last modified: 2007/08/24 23:31 (external edit)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki