C++_std::copy

コピペ。

std::copy ( InputIterator first, InputIterator last, OutputIterator result );
指定された範囲の要素をコピー。

result は [ first, last ) の範囲に含まれてならない
[ first, last ) 内の要素を、それぞれ [ result, result + (last - first) ) へコピーする。

コピーは first から順番に行い、
0 以上 last - first 未満であるそれぞれの n について、
*(result + n) = *(first + n) を行う。よく分からん。

 

ex )

    std::vector<int> v = { 3,1,2 };
   
    // v から v2 へ普通にコピー
    std::vector<int> v2(v.size()); // ちゃんと確保する。
    std::copy(v.begin(), v.end(), v2.begin());
   
    // back_inserter を使って ls3 へ設定
    // back_inserter は要素をコピーする時に
    //   v3.push_back() するイテレータを作る関数。
    std::list<int> ls3;
    std::copy(v2.begin(), v2.end(), std::back_inserter(ls3));
   
    // ostream_iterator を使って出力
    // ostream_iterator<int>(cout, ",") は要素をコピーする時に
    //  cout << x << "," としてくれるイテレータ
    std::copy(ls3.begin(), ls3.end(), std::ostream_iterator<int>(std::cout, ","));
    // 3, 1, 2,

back_insert_iterator:末尾に要素を挿入する出力イテレータアダプタ。
back_inserter:back_insert_iterator オブジェクトを作るヘルパ関数。

 

 

こちらから。
https://cpprefjp.github.io/reference/algorithm/copy.html
https://cpprefjp.github.io/reference/iterator.html

以上。