copy() 是一个标准库函数,位于 头文件中。它用于将一个容器中的元素复制到另一个容器中,或者将一个范围内的元素复制到另一个范围中。
函数参数介绍
copy( first, last, d_first );
first 和 last:表示输入范围的迭代器。
first 指向要复制的范围的起始位置
last 指向要复制的范围的结束位置(不包括该位置的元素)。
d_first:表示输出范围的迭代器。它指向要将元素复制到的目标范围的起始位置。
函数功能
使用copy() 函数,我们可以快速、简便地复制容器中的元素到另一个容器,或者复制一个范围内的元素到另一个范围。
函数使用注意点
1.头文件需包含#include <algorithm>
2. 使用到什么对象,要添加对应的头文件
3. 编译器环境需要支持C++11的新特性
使用例子
1.复制容器元素到另一个容器
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> source = {1, 2, 3, 4, 5};
vector<int> destination(source.size());
copy(source.begin(), source.end(), destination.begin());
// 输出复制后的容器
for (int num : destination) {
cout << num << " ";
}
cout << endl;
return 0;
}
输出
2.复制范围内的元素到另一个范围
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> source = {1, 2, 3, 4, 5};
vector<int> destination(source.size());
auto first = source.begin() + 1; // source下标1
auto last = source.end() - 1; // source下标3
auto d_first = destination.begin() + 2; // destination下标2
copy(first, last, d_first);
// 将source下标1-3的元素赋值给destination从下标2开始的位置
// 输出复制后的范围
for (int num : destination)
{
cout << num << " ";
}
cout << endl;
return 0;
}
输出