mardi 4 août 2015

Iterating a vector from end to somewhere (not begin)

I'm trying to iterate over a std::vector using rbegin() and an iterator coming from a std::find_if(). Of course iterator and reverse_iterator are not compatible. How can I do it ?

auto my_it = std::find_if(vec.begin(), vec.end(), 
    // irrelevant lambda
});

for (auto rit = vec.rbegin(); rit != my_it; ++rit)   // doesn't compile, iterators not compatible
{
    // do something
}

There are plenty of question on how to iterate from rbegin() to rend(), but I can't find anything for when I want to stop before rend().



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire