C++教程
C++控制语句
C++函数
C++数组
C++指针
C++对象
C++继承
C++多态
C++抽象
C++常用
C++ STL教程
C++迭代器
C++程序

C++ copy_n()

C++ 算法函数copy_n()

C++ 算法copy_n()函数指定要复制到新容器中的元素数。该函数用于从结果开始将容器的[first,last)的n个元素复制到另一个容器中。

语法

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

参数

first: 它是范围的第一个元素的输入迭代器,元素本身包含在范围中。
last: 它是范围的last元素的输入迭代器,其中元素本身不包含在范围中。
result: 它是新容器中要复制元素的第一个元素的输出迭代器。

返回值

返回以结果开头的新范围的last元素的迭代器。

示例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

复杂度

该函数的复杂度从第一个元素到last元素都是线性的。

数据竞争

最多可以访问容器的n个元素。

异常

如果任何容器元素抛出一个异常,该函数将引发异常。

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4