red floyd wrote:
JDT wrote:
red floyd wrote:
I think that you can use std::reverse_iterator with a pointer. See
24.1.1
typedef std::reverse_iterator<float *> rfloat_iter;
rfloat_iter p =
std::find_if(rfloat_iter(m+6), rfloat_iter(m),
std::bind2nd(greater_equal<float>(), 14.5));
Thanks for your help. First of all, what do you mean by 24.1.1?
Section 24.1.1 of the ISO C++ Standard (ISO/IEC 14882:2003).
I am testing your code. To check if find_if finds something, should I
use "p == rfloat_iter(m+6)" or "p == rfloat_iter(m)"?
The latter.
Besides, is the range between m+5 and m-1?
Sort of. See 24.1.1 for more details.
Your code has some compile errors. I appreciate if somebody can show
me what's the correct syntax (because I am not familiar with this
regard).
You need to #include <iterator>
I'm not surprised, I wrote it off the top of my head. I'm sure that one
of the other more knowledgeable types here can help you more than me.
Also, as a matter of etiquette, please try not to top-post (posting all
your text above what you're replying to) -- it's frowned on in this
newsgroup. Instead, intersperse your replies with the text you're
referring to (as I did here), or after the text.
you might try this:
#include <iterator>
typedef std::reverse_iterator<float *> rfloat_iter;
const rfloat_iter rbegin = rfloat_iter(m+6);
const rfloat_iter rend = rfloat_iter(m);
rfloat_iter p =
std::find_if(rbegin, rend,
std::bind2nd(std::greater_equal<float>(),
14.5));
if (p == r_end)
/* not found */;
Thanks for your help.