Afficher un message
Vieux 16/10/2007, 05h57   #4
Kai-Uwe Bux
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: using std::find on a std::vector<double>

red floyd wrote:

> Kai-Uwe Bux wrote:
>> Anonymous wrote:
>>
>>> 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:

>
> 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 :-(


>>
>> 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 ) );


So that would be:

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


Thanks

Kai-Uwe Bux
  Réponse avec citation
 
Page generated in 0,10363 seconds with 9 queries