ã«ã¼ãã使ããã«é åã®é åºãéã«ãã¦ã¿ã
ループを使わずに配列の順序を逆にする。ã¨ããåé¡ããã£ãã®ã§ãã£ã¦ã¿ãï¼
çãã¯åèµ·å¼ã³åºãï¼
#include <iostream> #include <algorithm> void disp(int val){ std::cout << val << std::endl; } template <class T> void swap(T *a, T *b){ T temp=*a; *a=*b; *b=temp; } template <class T> void reverse(T *a, T *b){ b--; if(a>=b)return; swap(a,b); a++; reverse(a,b); } int main(){ int array[10]={1,2,3,4,5,6,7,8,9,10}; std::for_each(array,array+10,disp); reverse(array,array+10); std::for_each(array,array+10,disp); return 0; }
for_each使ã£ã¦ã¿ããã£ãã ããªãã§ã><ï¼reverseé¨åã§ã¯ã«ã¼ã使ã£ã¦ãªãï¼
dispããã³ãã¬ã¼ãã«ããã¨ãã«ï¼å¼åºå´ã§disp
ãã®ããã°ã©ã ï¼é
åãªãOKã ãã©ï¼reverse_iteratorã«ã対å¿ããããªãï¼ã§ãããã©ãã®ã§ãã®è¾ºã§ããã¨ãï¼