2012-01-06 110 views
2

Zobrist键是棋盘游戏中使用的64位散列值,可以明确表示树搜索期间发现的不同位置。它们通常存储在大小为1000K或更多(每个条目大约10个字节)的数组中。该表通常以hashKey % size作为索引进行访问。你会用什么样的STL容器来表示这种类型的表?考虑到由于表的大小是有限的碰撞可能发生。对于一个“普通”数组,我将不得不处理这种情况,所以我想到了一个unordered_map,但由于未指定实现,所以我不确定在填充地图时效率如何。Zobrist键的高效数据结构

+0

你需要一个'map'还是'set'就足够了? – 2012-01-06 11:13:56

回答

1

对我来说,一个标准的hashmap会适合你 - 非常快速的查找,它会为你可靠地和无形地处理碰撞。

0

如果你想探索除STL之外的其他领土,看看Judy arrays:这些应该适合你的问题。

如果你是在Linux上,你可以与他们进行实验很容易,从你的资料库只安装...

This应用笔记可以帮助解决你的任务。

编辑

this STL接口:我打算用它做实验,然后我会报告我的结果。