เริ่มต้นด้วย c ++ 20 คุณสามารถใช้ a std::ranges::reverse_view
และ range-based for-loop:
#include<ranges>
#include<vector>
#include<iostream>
using namespace std::ranges;
std::vector<int> const vec{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for(auto& i : views::reverse(vec)) {
std::cout << i << ",";
}
หรือแม้กระทั่ง
for(auto& i : vec | views::reverse)
น่าเสียดายที่ในขณะที่เขียน (มกราคม 2020) ไม่มีคอมไพเลอร์หลักที่ใช้ไลบรารี range แต่คุณสามารถใช้range-v3 ของ Eric Niebler :
#include <iostream>
#include <vector>
#include "range/v3/all.hpp"
int main() {
using namespace ranges;
std::vector<int> const vec{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for(auto& i : views::reverse(vec)) {
std::cout << i << ",";
}
return 0;
}