📅  最后修改于: 2020-10-16 09:16:26             🧑  作者: Mango
C++ STL algorithm.copy_n()函数指定要复制到新容器中的元素数。该函数用于从结果开始将容器的[first,last)的n个元素复制到另一个容器中。
template
OutputIterator copy_n(InputIterator first, Size n, OutputIterator result);
first:它是范围的第一个元素的输入迭代器,其中元素本身包含在范围中。
last:它是范围中最后一个元素的输入迭代器,其中元素本身不包含在范围中。
结果:它是新容器中要复制元素的第一个元素的输出迭代器。
返回以result为开头的新范围的最后一个元素的迭代器。
#include
#include
#include
using namespace std;
int main()
{
vector u1 = {2,6,8,4,9,4};
vector u2(6);
vector u3(6);
copy(u1.begin(), u1.begin()+3, u2.begin());
cout<<"The new vector with copy contains:";
for(int k=0; k
输出:
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
#include
#include
#include
using namespace std;
int main()
{
int newints[]={15,25,35,45,55,65,75};
std::vector newvector;
newvector.resize(7);
std::copy_n(newints,7,newvector.begin());
std::cout<<"newvector contains:";
for(std::vector::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个元素。
如果任何容器元素抛出一个异常,该函数将引发异常。