我想写一个国际象棋引擎,我决定使用棋盘的位板表示。我做了一些阅读,我发现最有效的方法是使用64位长变量和位操作。但是我也知道有一个名为std::bitset
的东西,如果我的理解是正确的,那就完全符合我的需要。
我的问题是:使用std::bitset
是否更好,以使代码更慢但更容易阅读和写入,或者更好地专注于性能?
答案 0 :(得分:2)
由于您的问题与性能和可读性有关,我建议您听听Herb Sutter的演讲@ CppCon 2014 here。
简而言之:
我不认为记忆优化是国际象棋程序恕我直言的关注点。