std::unique_ptr 不能引用 -- 它是一个已删除的函数
std::unique_ptr cannot be referenced -- it is a deleted function
我目前正在尝试通过将原始点转换为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++中删除一个项目
- 删除映射和分割错误中的一个过去结束元素
- 使用另一个字符串从字符串中删除空格
- 编写一个函数来删除单链表中的节点(尾部除外),仅授予对该节点的访问权限
- 创建了一个链表,但如何删除 c++ 中的"所有"节点
- 如何知道地图中的最后一个元素是否被删除?
- G++ 发出警告,要求删除一个代码的数组,但不删除另一个代码的数组
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素
- 如何删除矢量中的重复值,最后一个除外
- C++ 删除存在于另一个矢量中的矢量项,同时保留顺序
- 当类型适当的构造函数可用时,为什么一个编译器尝试使用已删除的副本构造函数
- 在 c++ 中打开文件、删除标点符号并追加到另一个文件中
- 删除链接列表中剩余的最后一个节点
- 编译器在C++中调用另一个函数时,在参数中查找已删除的构造函数
- 避免在使用链接列表从 deque 中删除最后一个节点时出现内存泄漏
- 在C++中为二叉搜索树创建一个删除函数
- 当编译一个删除停止字并应用大小写折叠的程序时,会出现一个奇怪的代码
- 为什么C++仍然有一个删除[]和一个删除运算符
- 一个删除行的函数