c++ - C++ 检查 unordered_set 中的属性值而不是整个对象
问题描述
我有一个std::unordered_set
。std::unique_ptr
指针指向包含 a 的节点std::array<2, int>
,表示 2d 位置。在下面代码指定的集合中的插入
struct VectorHash {
size_t operator()(const std::unique_ptr<Node>& ptr) const {
std::hash<int> hasher;
size_t seed = 0;
for (int i : ptr->position) {
seed ^= hasher(i) + 0x9e3779b9 + (seed<<6) + (seed>>2);
}
return seed;
}
};
假设我有一个位置,我想检查是否有任何std::unique_ptr
s 具有相同的位置,我必须进行暴力搜索还是我可以以某种方式使用散列函数进行查找?我认为这可能是可能的,因为位置有点成为关键,还是我错了?提前致谢
解决方案
推荐阅读
- vba - 有没有办法在 mac 上正确运行 vba 代码访问?
- javascript - Rails 6无限滚动未捕获ReferenceError:未定义InfiniteScroll
- css - 用 CSS3 为我的文本设置动画后,为什么它没有完全消失?
- python - 如何从 HTML 页面(与 Django 一起)调用带有参数的 Python 函数?
- r - 使用 Rvest 和 Glue 从网页抓取多个页面中创建聚合 df
- winapi - MFC:在 CWnd::OnCreate() 之后保证调用什么?
- r - 在R中添加一个系列作为列
- c# - 为什么我不能在 C# 中读取此注册表项
- r - 为什么将字符更改为日期格式会给我 NA 值?
- python - 旋转后的OpenGL python和pygame翻译不适用于mouselook和移动