📜  C++ STL-algorithm.copy_n()函数(1)

📅  最后修改于: 2023-12-03 14:59:45.456000             🧑  作者: Mango

C++ STL-algorithm.copy_n()函数

简介

copy_n()函数用于将一个范围内的n个元素复制到另一个范围中,可以用于数组和容器。

函数原型
template< class InputIt, class Size, class OutputIt >
OutputIt copy_n( InputIt first, Size count, OutputIt result );

其中,InputItOutputIt分别表示输入和输出迭代器的类型,Size表示要复制的元素数量。

参数说明
  • first:表示要复制的范围的起始位置
  • count:表示要复制的元素数量
  • result:表示目标范围的起始位置
返回值

返回值为目标范围的末尾迭代器。

示例
1. 复制数组
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    int arr2[5];

    copy_n(arr1, 5, arr2);

    for (int i = 0; i < 5; i++) {
        cout << arr2[i] << " ";
    }

    return 0;
}

输出结果:

1 2 3 4 5
2. 复制容器
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    vector<int> vec1 {1, 2, 3, 4, 5};
    vector<int> vec2(5);

    copy_n(vec1.begin(), 3, vec2.begin());

    for (const auto &v : vec2) {
        cout << v << " ";
    }

    return 0;
}

输出结果:

1 2 3 0 0
注意事项
  • copy_n()函数不会检查目标范围是否够大,需要保证目标范围的大小足够。
  • 如果要复制的源范围小于要复制的元素数量,则行为未定义。