我正在编写一个程序来评估棋盘游戏(即othello)中的大量头寸。我的董事会代表是std::vector
。由于同一位置在处理过程中可能会出现更多次,因此我使用std::set<std::vector>
来存储检查位置。
就性能而言,我不知道是否更倾向于使用std::set
(因为{{1>}实现了所有需要的运算符而导致本地)或{ {1}}具有良好的哈希功能(即std::vector
)。
另外还有其他好的解决方案可以达到同样的目标吗? (可能是不同的电路板表示[确定可用的位板]或不同的数据结构?)
编辑**************************************编辑
这是获取电路板的伪代码:
std::unordered_set
答案 0 :(得分:1)
见
Why on earth would anyone use set instead of unordered_set?
what is the difference between set and unordered_set in C++?
基本上:除非您关注值的顺序,否则您应该使用unordered_set。
但至于所有其他性能问题:如有疑问 - >开始测量。 实施&#34; less&#34;并且&#34;哈希&#34;,然后在两个类中尝试并检查哪个表现更好(注意:在这种情况下,你还没有几乎相同的API。所以它不应该带你去很长时间来换班考试)