reverse_copy関数は、その名の通り順序を反転してコピーします。
templateFirstには、反転してコピーするコピー元の最初の要素。inline OutputIterator reverse_copy( BidirectionalIterator First, BidirectionalIterator Last, OutputIterator Result )
Lastは、最後の要素の次。
Resultは、出力先です。
では、サンプルを見てみましょう。
// reversecopy01.cpp
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> v1, v2(10);
vector<int>::iterator p1, p2;
int i;
for (i = 0; i < 10; i++)
v1.push_back(i);
for (p1 = v1.begin(); p1 != v1.end(); p1++)
cout << *p1 << ", ";
cout << endl;
reverse_copy(v1.begin(), v1.end(), v2.begin());
for (p2 = v2.begin(); p2 != v2.end(); p2++)
cout << *p2 << ", ";
cout << endl;
return 0;
}
実行結果はどうなっているかというと
v2には、あらかじめv2(10)のように長さを指定しておく必要があります。
いろいろなプログラムを作ってreverse_copy関数の動作を試してみてください。
Update Nov/20/2005 By Y.Kumei