sách gpt4 ăn đã đi

c++ - 将 std::vector<>> 移动到 std::vector<>>

In lại 作者:太空狗 更新时间:2023-10-29 19:40:12 28 4
mua khóa gpt4 giày nike

有时候,我们有一个工厂可以生成一个 std::unique_ptr vector ,后来我们想在类/线程/你命名的之间共享这些指针。因此,最好改用 std::shared_ptr 。当然有一种方法可以将 std::uniqe_ptr 转换为 std::shared_ptr

std::shared_ptr sharedV;
std::unique_ptr uniqueV(new int(2));

sharedV = std::move(uniqueV);

那么有什么直接的方法可以对标准集合做这样的事情吗?

câu trả lời hay nhất

Bạn có thể sử dụng std::move từ 移动范围。它的行为很像 std::sao chép ,而是移动。以下示例将移动所有 duy nhất_ptrtừ uniqueVĐi vàosharedV . uniqueV的元素都是 nullptr在示例的末尾。

#include 
#include
#include
#include

int chính()
{

std::vector<>> sharedV;
std::vector<>> uniqueV;

uniqueV.emplace_back(std::make_unique(42));

std::move(uniqueV.begin(), uniqueV.end(), std::back_inserter(sharedV));

trả về 0;
}

关于c++ - 将 std::vector<>> 移动到 std::vector<>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864269/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress