On Nov 26, 1:18 pm, lightai...@gmail.com wrote:
> Dear Gurus,
>
> I would like to implement a function that computes the number of times
> a certain condition is met in a global array.
>
> For example, I have an global array of size 500.
> float array[500];
>
> I have a function that finds the maximum of an array of size 50.
> bool findMax50(float input[])
>
> Next, I want to implement a function that can do the following;
>
> Sum( findMax50(array), period)
> If period is 20, then this function will start at the last element of
> the global array and will return 1 if this element is a maximum among
> the 50 elements it covers. Then, it moves on to the (last -1)th
> element all the way to (last-20)th element. The Sum() function will
> sum up the number of times maximum happened.
>
> My greatest difficulty lies in how one can input a function as a
> parameter into another function.
>
though as usual I cant make heads or tials of a post the answer to
your qustion:
> Can some Guru advise?
Is:
You can use a function pointer:
typedef ret_type (*funcptr)(param_types);
ret_type foo(param_types);
funcptr fptr=&foo;
alternatively you can use functioniods:
class my_functioniod_base{
public:
virtual ~my_functioniod_base()=0;
ret_type operator()(param_types) const =0;
};
struct Tfoo:
public my_functioniod_base
{
ret_type operator()(param_typs) const{/*define it here.*/};
};
Tfoo foo;
my_functioniod_base & fref=foo;
fref(params);//runs Tfoo:

perator().
you can do a little template work too:
template<typename pred>
void run(pred p){
p();
};
void f();
run(&f);
have a look at the standard <algorithm> and <functional> headers too;
interesting tools you can find there.
yours,
FM.