non-member rbegin/rend are not all that complicated to stick into your own library (if you don't have them already), or you can just construct reverse iterators directly in C++98:
1 2 3 4 5 6 7 8 9 10 11 12
#include <iostream>
#include <iterator>
int main()
{
constint N = 5;
int a[N] = {1,2,3,4,5};
typedef std::reverse_iterator<int*> iter_t;
for(iter_t i = iter_t(a+N); i != iter_t(a); ++i)
std::cout << *i << ' ';
}
PS: if you want indexing, for(std::size_t i = N-1; i != (std::size_t) -1; --i) is safe because of how unsigned integer arithmetic is defined.