当前位置:   article > 正文

【C++基础】std::copy

std::copy


在C++中,有一个 std::copy 算法函数可用于容器之间的元素拷贝操作。它的声明如下:

template<class InputIt, class OutputIt>
OutputIt copy(InputIt first, InputIt last, OutputIt d_first);
  • 1
  • 2

std::copy 函数将位于 [first, last) 范围内的元素拷贝到从 d_first 开始的目标范围内。即将源容器中的元素复制到目标容器中。

以下是一个使用 std::copy 函数的示例:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> source = {1, 2, 3, 4, 5};
    std::vector<int> destination(source.size()); // 目标容器需要提前被分配空间

    std::copy(source.begin(), source.end(), destination.begin());

    std::cout << "Copied elements: ";
    for (const auto& elem : destination) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;

    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在上述示例中,我们有一个 source 容器,其中包含了一些整数元素。我们通过创建一个与 source 相同大小的 destination 容器,并使用 std::copysource 中的元素拷贝到 destination 中。拷贝操作完成后,我们遍历 destination 并打印拷贝得到的元素。

需要注意的是,目标容器需要提前分配空间,以便能够容纳源容器中的元素。如果目标容器未正确分配空间,会导致未定义的行为。

std::copy 可以用于各种容器(如 vectorlistarray 等)及其迭代器,以及其他支持随机访问迭代器的数据结构。它也可以用于拷贝基本类型数组或指针范围内的元素。但是,如果需要处理复杂的自定义数据类型,最好使用拷贝构造函数或赋值操作符来进行元素的拷贝。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/707788
推荐阅读
相关标签
  

闽ICP备14008679号