copy()はオブジェクトをコピーします。
書式は次の通りです。
template oiter copy(iiter first, iiter last, oiter x);
size_type basic_string::copy(E *s, size_type n, size_type pos = 0) const;
static E *char_traits::copy(E *xx, const E *yy, size_t n);
最初の書式のアルゴリズムは指定した範囲の要素をコピーします。firstはコピーする最初の要素の反復子、lastは最後の要素の反復子、xは出力反復子です。
2番目の書式は、文字列をコピーします。sはコピーする文字列、nはコピーする数、posはコピーする先頭の位置です。
、
3番目の書式は、文字配列をコピーします。xxはコピーする元、yyはコピー先です。
次の例は、ベクタの内容をコピーするプログラムの例です。
#include <iostream>
#include <vector>
#include <iterator>
typedef std::ostream_iterator <int, char, std::char_traits <char> > osit;
int main(int argc, char* argv[])
{
std::vector < int > v;
osit ovstream(std::cout, " ");
for (int i = 0; i < 10; i++)
v.push_back(i);
copy(v.begin(), v.end(), ovstream);
std::cout << std::endl;
return 0;
}
実行結果は次の通りです。
0 1 2 3 4 5 6 7 8 9