将unique_ptr从一个集合移动到另一个集合可以通过以下步骤实现:
下面是一个示例代码:
#include <iostream>
#include <vector>
#include <memory>
int main() {
std::vector<std::unique_ptr<int>> source;
std::vector<std::unique_ptr<int>> destination;
// 在源集合中添加一些unique_ptr
source.push_back(std::make_unique<int>(1));
source.push_back(std::make_unique<int>(2));
source.push_back(std::make_unique<int>(3));
// 将unique_ptr从源集合移动到目标集合
for (auto& ptr : source) {
destination.push_back(std::move(ptr));
}
// 打印目标集合中的值
for (const auto& ptr : destination) {
std::cout << *ptr << " ";
}
std::cout << std::endl;
return 0;
}
在这个示例中,我们创建了两个vector容器,source和destination,它们都存储了unique_ptr<int>类型的指针。然后,我们使用std::make_unique函数创建了一些int类型的对象,并将它们添加到源集合source中。
接下来,我们使用for循环遍历源集合source中的每个unique_ptr,并使用std::move函数将其移动到目标集合destination中。注意,在移动后,源集合source中的指针将变为nullptr。
最后,我们使用另一个for循环打印目标集合destination中的值,以验证移动操作是否成功。
这是一个简单的示例,展示了如何将unique_ptr从一个集合移动到另一个集合。在实际应用中,您可能需要根据具体情况进行适当的错误处理和资源管理。
领取专属 10元无门槛券
手把手带您无忧上云