Re: How to find number of times certain conditions happened in an
array?
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::operator().
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.