我有一个优先队列:
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'的隐式删除副本构造函数”。你能告诉我如何解决吗?