using std::find on a std::vector<double>

A

Anonymous

I ahve a vector of doubles taht I need to extract values from. I was
just about to use the STL find() algo, but I have a couple of questions:

first: can you specify the tolerance threshold to match on doubles?
second: if yes, how may this be done (i.e. how many one specify the
tolerance threshold for comparing doubles?)
 
K

Kai-Uwe Bux

Anonymous said:
I ahve a vector of doubles taht I need to extract values from. I was
just about to use the STL find() algo, but I have a couple of questions:

first: can you specify the tolerance threshold to match on doubles?
second: if yes, how may this be done (i.e. how many one specify the
tolerance threshold for comparing doubles?)

Note that find() has two signatures: one that takes a value to be found and
one that takes a unary predicate instead. Use the later and provide a
functor:

class is_approximately {

double x;

public:

is_approximately ( double what )
: x ( what )
{}

bool operator() ( double y ) const {
// return true if y is near x.
}

};

Now you can do:

find( whatever.begin(), whatever.end(), is_approximately( 0.5 ) );



Best

Kai-Uwe Bux
 
R

red floyd

Kai-Uwe Bux said:
Note that find() has two signatures: one that takes a value to be found and
one that takes a unary predicate instead. Use the later and provide a
functor:

Isn't the second form find_if(), not find()?
 
K

Kai-Uwe Bux

red said:
Isn't the second form find_if(), not find()?

My bad. I had the page from the standard on my screen right in front of me.
Clearly, I just can't read :-(


So that would be:

find_if( whatever.begin(), whatever.end(), is_approximately( 0.5 ) );


Thanks

Kai-Uwe Bux
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top