C++ 算法 copy_n() 函数指定要复制到新容器中的元素数量。该函数用于从结果开始将容器 [first,last) 的 n 个元素复制到不同的容器中。
用法
template<class InputIterator, class Size, class OutputIterator>
OutputIterator copy_n(InputIterator first, Size n, OutputIterator result);
参数
first:它是范围的第一个元素的输入迭代器,其中元素本身包含在范围内。
last: 它是范围最后一个元素的输入迭代器,其中元素本身不包含在范围内。
result:它是复制元素的新容器的第一个元素的输出迭代器。
返回值
返回以结果开头的新范围的最后一个元素的迭代器。
例子1
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
vector<int> u1 = {2,6,8,4,9,4};
vector<int> u2(6);
vector<int> u3(6);
copy(u1.begin(), u1.begin()+3, u2.begin());
cout<<"The new vector with copy contains:";
for(int k=0; k<u2.size(); k++)
cout<<u2[k]<<" ";
copy_n(u1.begin(),4,u3.begin());
cout<<"\n";
cout<<"The new vector using copy_n contains:";
for(int m=0; m<u3.size(); m++)
cout<<u3[m]<<" ";
}
输出:
The new vector with copy contains:2 6 8 0 0 0 The new vector using copy_n contains:2 6 8 4 0 0
例子2
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int newints[]={15,25,35,45,55,65,75};
std::vector<int> newvector;
newvector.resize(7);
std::copy_n(newints,7,newvector.begin());
std::cout<<"newvector contains:";
for(std::vector<int>::iterator ti= newvector.begin(); ti!=newvector.end();++ti)
std::cout<<" "<<*ti;
std::cout<<"\n";
return 0;
}
输出:
newvector contains:15 25 35 45 55 65 75
复杂度
函数的复杂度从第一个元素到最后一个元素是线性的。
数据竞争
最多访问容器的 n 个元素。
异常
如果任何容器元素抛出一个异常,该函数就会抛出异常。
相关用法
- C++ copy_backward()用法及代码示例
- C++ copy_if()用法及代码示例
- C++ copy()用法及代码示例
- C++ copysign()用法及代码示例
- C++ count()用法及代码示例
- C++ complex cosh()用法及代码示例
- C++ count_if()用法及代码示例
- C++ conj()用法及代码示例
- C++ cosh()用法及代码示例
- C++ cos()用法及代码示例
- C++ complex cos()用法及代码示例
- C++ clock()用法及代码示例
- C++ cbrt()用法及代码示例
- C++ c32rtomb()用法及代码示例
- C++ c16rtomb()用法及代码示例
- C++ ctime()用法及代码示例
- C++ cin get()用法及代码示例
- C++ ceil()用法及代码示例
- C++ cauchy_distribution a()用法及代码示例
- C++ unordered_map cbegin用法及代码示例
注:本文由纯净天空筛选整理自 C++ Algorithm Functions copy_n()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。