On Nov 26, 1:18 pm, (E-Mail Removed) 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.