我目前正在努力将原始点转换为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.
答案 0 :(得分:0)
您无法将unique_ptr
存储在unordered_set
中,然后再将其取出。
在容器中访问const
时,move
无效。
缺乏透明的哈希函数也使查找元素变得困难。