STL copy_n函数

STL copy_n函数算法

STL 中的 copy_n() 算法可以从源容器复制指定个数的元素到目的容器中。

STL copy_n函数详解

头文件

#include <algorithm>

语法

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

参数

参数 描述
first1 输入迭代器
n 拷贝元素个数,如果是负数,不会做任何事情。
result 输出迭代器

说明

该函数返回一个指向目标序列最后一个被复制元素的下一个元素的迭代器。

技术细节

如果 n 是负数,函数不会做任何事情。如果范围越界,即 result 后面不够存放时会导致未定义但状态依旧有效。

案例

STL copy_n函数

使用 STL copy_n 函数拷贝集合

#include <iostream> #include <algorithm> #include <vector> using namespace std; int main() { std::cout << "嗨客网(www.haicoder.net)\n" << std::endl; int myints[]={10,20,30,40,50,60,70}; std::vector<int> myvector; myvector.resize(7); std::copy_n(myints, 7, myvector.begin()); std::cout << "myvector contains:"; for (std::vector<int>::iterator it = myvector.begin(); it!=myvector.end(); ++it) { std::cout << ' ' << *it; } std::cout << '\n'; return 0; }

我们在 Linux 下使用 g++ 进行编译,具体命令如下:

g++ copy_n.cpp -std=c++11

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

38_STL copy_n函数.png

我们使用了 copy_n 函数,实现了集合的拷贝。

STL copy_n函数总结

STL 中的 copy_n() 算法可以从源容器复制指定个数的元素到目的容器中。