错误“调用'std :: unique_ptr <treenode>'隐式删除的副本构造函数”

时间:2019-05-04 23:04:21

标签: c++ priority-queue unique-ptr

我有一个优先队列:

            std::priority_queue<std::unique_ptr<TreeNode>,
                                std::vector<std::unique_ptr<TreeNode>>,
                                decltype(comp)> MinHeap(comp);

我想从中选出两个最重要的元素并推入新元素:

        std::unique_ptr<TreeNode> l(std::move(MinHeap.top()));
        MinHeap.pop();

        std::unique_ptr<TreeNode> r(std::move(MinHeap.top()));
        MinHeap.pop();

        MinHeap.push(std::make_unique<TreeNode>(TreeNode(' ', l->_freq + r->_freq, std::move(l), std::move(r), false)));

这里我有问题

std::unique_ptr<TreeNode> l(std::move(MinHeap.top()));

Clion说“调用'std :: unique_ptr'的隐式删除副本构造函数”。你能告诉我如何解决吗?

0 个答案:

没有答案