gpt4 book ai didi

c++ - 从队列中删除 unique_ptr

转载 作者:IT老高 更新时间:2023-10-28 13:58:22 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何/是否可以在 queue 中使用 unique_ptr

// create queue
std::queue<std::unique_ptr<int>> q;

// add element
std::unique_ptr<int> p (new int{123});
q.push(std::move(p));

// try to grab the element
auto p2 = foo_queue.front();
q.pop();

我明白为什么上面的代码不起作用。由于 frontpop 是 2 个独立的步骤,因此无法移动元素。有没有办法做到这一点?

最佳答案

你应该明确地说你想要移动指针离开队列。像这样:

std::unique_ptr<int> p2 = std::move(q.front());
q.pop();

关于c++ - 从队列中删除 unique_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14127487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com