gpt4 book ai didi

c++ - std::unique_ptr 不能被引用——它是一个被删除的函数

转载 作者:太空宇宙 更新时间:2023-11-04 13:53:03 25 4
gpt4 key购买 nike

我目前正在尝试通过将原始点转换为 std::unique_ptr 来努力。我唯一不明白的是为什么这段代码不起作用:

auto it = entities.begin();
while (it != entities.end()) {
int index = getIndex((*it)->getAABB());
if (index != -1) {
children.at(index)->insert(std::move(*it)); // Error
it = entities.erase(it);
}
else {
it++;
}
}

实体是:

typedef std::unordered_set<std::unique_ptr<QuadTreeObject>> EntityContainer;
EntityContainer entities;

错误提示 std::unique_ptr cannot be referenced, it is a deleted function.

最佳答案

您不能将 unique_ptr 存储在 unordered_set 中并再次取出它们。

在容器中访问是 const,所以您的move 什么都不做。

缺乏透明的哈希函数也使得查找元素变得困难。

关于c++ - std::unique_ptr 不能被引用——它是一个被删除的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22744468/

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