SGI

copy_n

类别:算法 组件类型:函数

原型

template <class InputIterator, class Size, class OutputIterator>
OutputIterator copy_n(InputIterator first, Size count, 
                      OutputIterator result);

说明

Copy_n从范围[first, first + n)复制元素到范围[result, result + n). 即执行如下赋值*result = *first, *(result + 1) = *(first + 1),依此类推。通常,对于每个整数i0逐渐增加到(但不包含)n, copy_n执行赋值*(result + i) = *(first + i). 赋值按正向顺序执行,按逐渐增加n. [1]

返回值是result + n.

定义

在标准头 algorithm 中定义,在非标准后向兼容性头 algo.h 中定义。此函数为 SGI 扩展;它不属于 C++ 标准。

对类型的要求

前提

复杂度

线性。准确来说n执行赋值。

示例

vector<int> V(5);
iota(V.begin(), V.end(), 1);

list<int> L(V.size());
copy_n(V.begin(), V.size(), L.begin());
assert(equal(V.begin(), V.end(), L.begin()));

说明

[1] Copy_n几乎是多余的,但不完全是。如果first是一个 输入迭代器,而不是 前向迭代器,那么copy_noperation 无法用copy.

表示

copy, 另请参阅
[Silicon Surf] [STL Home]
copy_backward 版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。