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),依此类推。通常,对于每个整数i从0逐渐增加到(但不包含)n, copy_n执行赋值*(result + i) = *(first + i). 赋值按正向顺序执行,即按逐渐增加n. [1]
返回值是result + n.
定义
在标准头 algorithm 中定义,在非标准后向兼容性头 algo.h 中定义。此函数为 SGI 扩展;它不属于 C++ 标准。对类型的要求
前提
-
n >= 0.
-
[first, first + n)是一个有效范围。
-
result不是范围内的迭代器[first, first + n).
-
[result, result + n)是一个有效范围。
复杂度
线性。准确来说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, 另请参阅
copy_backward
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。