copy

提供:cppreference.com
移動: 案内, 検索
#include <algorithm>
 
template< class InputIterator, class OutputIterator >    
OutputIterator copy( InputIterator first, InputIterator last, OutputIterator d_first );

[first, last)で定義される範囲の要素をd_firstで始まる別の範囲にコピーします。

目次

[編集] 引数

first, last - コピーされる要素の範囲

d_first - コピー先の先頭

[編集] 返値

最後のコピー先の要素の、次の要素への出力イテレータを返す。

[編集] 等価コード

template<class InputIterator, class OutputIterator>    
OutputIterator copy(InputIterator first, InputIterator last, OutputIterator d_first) 
{
    while (first != last) {
        *d_first++ = *first++;
    }
    return d_first;
}

[編集]

以下のコードは、あるベクタから別のベクタに内容をコピーし、さらに結果を出力するためにcopyを使用しています。

#include <algorithm>
#include <iostream>
 
int main()
{
    std::vector<int> from_vector;
    for (int i = 0; i < 10; i++) {
        from_vector.push_back(i);
    }
 
    std::vector<int> to_vector(10);
 
    std::copy(from_vector.begin(), from_vector.end(), to_vector.begin());
 
    cout << "to_vector contains: ";
    std::copy(to_vector.begin(), to_vector.end(), std::ostream_iterator<int>(std::cout, " "));
 
    return 0;
}

出力:

to_vector contains: 0 1 2 3 4 5 6 7 8 9

[編集] 計算量

firstからlastの区間で線形的です。

[編集] 関連トピック

copy_backward, remove_copy

個人用ツール
名前空間
変種
操作
案内
ツールボックス
他の言語