在容器中使用智能指针的原因

Simply written I would like to ask "what is a good reason to use smart pointers?" for ex std::unique_ptr

但是,我并没有要求在常规(哑)指针上使用智能指针的原因。我认为每个人都知道,或者快速搜索就能找到原因。

我要问的是这两种情况的比较:

Given a class (or a struct) named MyObject use

  1. std:queue<std::unique_ptr<MyObject>>queue;

而不是

  1. std:queue<MyObject> queue;

(可以是任何容器,不一定是队列)

为什么有人应该使用选项1而不是2?

评论