xxxxxxxxxx
for (vector<my_class>::reverse_iterator i = my_vector.rbegin();
i != my_vector.rend(); ++i ) {
}
xxxxxxxxxx
#include <vector>
std::vector<int> vec;
// Solution with iterator
for(std::vector<int>::reverse_iterator it = vec.rbegin(); it != vec.rend(); it++){
int val = *it;
}
// For better readability, you can use auto:
for(auto it = vec.rbegin(); it != vec.rend(); it++){
int val = *it;
}
xxxxxxxxxx
#include <vector>
std::vector<int> vec;
// Solution without iterator
for(long long i = (long long)vec.size() - 1; i >= 0; i--){
std::cout << vec[i] << std::endl;
}
// ATTENTION:
// Can lead to an endless loop if numbers.size() is bigger than
// sizeof(long long)/2 - 1
// this is because numbers.size() is an unsigned long long. Casting it to a
// long long halves the size. Not doing that ypecast does not allow i to be
// negative, so i>=0 would always be true