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 函数拷贝集合
#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
,如下图所示:
我们使用了 copy_n 函数,实现了集合的拷贝。
STL 中的 copy_n() 算法可以从源容器复制指定个数的元素到目的容器中。