C++11で追加されたrange-based for構文とBoost.Rangeアダプタを組み合わせて逆順走査。 #include <boost/range/adaptors.hpp> int main() { int a[] = {1, 1, 2, 3, 5, 8, 13, 21}; for (auto x : boost::adaptors::reverse(a)) { //... } } 関連URL c++ - C++11 reverse range-based for-loop - Stack Overflow