I have this code below that generates 15 random integers and uses them to initialize my vector, intVec. What I'm trying to do here is to iterate through the vector in reverse order and only print out the first 5 even numbers encountered while iterating.
I tried using the erase method to just print the first 5 elements but it keeps throwing me an exception error that says:
can't decrement vector iterator before begin
One of the requirements is that I have to use the const_reverse_iterator. Is there any simpler way to accomplish this?
int main()
{
default_random_engine randObj;
vector<int> intVec;
for (int i = 0; i < 15; i++)
{
intVec.push_back(randObj());
}
vector<int>::const_reverse_iterator iter;
for (iter = intVec.rbegin(); iter < intVec.rend(); ++iter)
{
if (*iter % 2 == 0)
{
intVec.erase(intVec.begin()+5, intVec.end());
cout << *iter << endl;
}
}
};