template_Firstから_Lastで示される要素の一つ前までの要素の並び順を反転します。void reverse( BidirectionalIterator _First, BidirectionalIterator _Last );
まずは、最も簡単な使い方の例を示します。
// reverse01.cpp #include <iostream> #include <algorithm> using namespace std; int main() { int i; int ar[] = {1, 2, 3, 4, 5, 6}; reverse(ar, ar+3); for (i = 0; i < 5; i++) cout<< ar[i] << ","; return 0; }reverse(ar, ar+3)は、
ar[0], ar[1], ar[2]の並び順を反転させます。
次に配列全部の並びを反転させるプログラムを次に示します。
// reverse02.cpp #include <iostream> #include <algorithm> using namespace std; int main() { int i, ar[] = {0, 1, 2, 3, 4, 5, 6}; reverse(ar, ar + sizeof(ar) / sizeof(int)); for(i = 0; i < (int)(sizeof(ar) / sizeof(int)); i++) cout << ar[i] << ","; return 0; }vectorでも同じです。
// reverse03.cpp #include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { int i; vector<int>v; for (i = 0; i < 10; i++) v.push_back(i); for (i = 0; i < 10; i++) cout << v[i] << ","; cout << "反転します" << endl; vector<int>::iterator p; p = v.begin(); reverse(p, p + v.size()); for (i = 0; i < 10; i++) cout << v[i] << ","; return 0; }これは、
vector<int>::iterator p, q; p = v.begin(); q = v.end(); reverse(p, q);としても同じですね。
Update Jan/24/2005 By Y.Kumei