gpt4 book ai didi

c++ - 将 unique_ptr 数组移动到另一个数组的正确方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:30 27 4
gpt4 key购买 nike

我有一个包含在 std::unique_ptr 中的数组,我想将内容移动到另一个相同类型的数组中。我是否需要编写一个循环来一个一个地移动元素,或者我可以使用类似 std::move 的东西吗?

const int length = 10;
std::unique_ptr<int[]> data(new int[length]);
//Initialize 'data'
std::unique_ptr<int[]> newData(new int[length]);
//Fill 'newData' with the contents of 'data'

编辑:另外,如果数组大小不同怎么办?

最佳答案

给定的目标数组定义为:

std::unique_ptr<int[]> destPtr(new int[destLength]);

源数组定义为:

std::unique_ptr<int[]> srcPtr(new int[srcLength]);

它保证 srcLength <= destLength ,你可以使用 std::move 如下:

const auto &srcBegin = srcPtr.get();
std::move(srcBegin, std::next(srcBegin, srcLength), destPtr.get());

关于c++ - 将 unique_ptr 数组移动到另一个数组的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38317217/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com