小编ash*_*hal的帖子

在 C++ 中传递具有移动语义的 unique_ptr 向量

我正在学习 CPP++14 移动语义。在编写一小段代码时,我观察到了一些奇怪的行为。我正在使用 r 值引用将唯一 ptr 的向量移动到函数。在调试时,我发现更改也应用于移动的对象。为什么即使物体被移动我也会观察这个hcnage?以下代码中的移动有什么作用?

void func(std::vector<std::unique_ptr<int>> && vect) {
    vect.emplace_back(std::move(std::make_unique<int>(3)));
    return ;
}

int  main() {
    std::vector<std::unique_ptr<int>> a;
    func(std::move(a));
    cout<<(*(a[0]))<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ stdvector unique-ptr stdmove

4
推荐指数
1
解决办法
98
查看次数

标签 统计

c++ ×1

stdmove ×1

stdvector ×1

unique-ptr ×1