uint64_t或std :: bitset上的位操作

时间:2017-04-18 14:49:29

标签: c++ performance bits bitset

我想写一个国际象棋引擎,我决定使用棋盘的位板表示。我做了一些阅读,我发现最有效的方法是使用64位长变量和位操作。但是我也知道有一个名为std::bitset的东西,如果我的理解是正确的,那就完全符合我的需要。

我的问题是:使用std::bitset是否更好,以使代码更慢但更容易阅读和写入,或者更好地专注于性能?

1 个答案:

答案 0 :(得分:2)

由于您的问题与性能和可读性有关,我建议您听听Herb Sutter的演讲@ CppCon 2014 here

简而言之:

  • 首先写清楚和正确。
  • 避免过早优化(更喜欢清晰代码优于优化代码)。

我不认为记忆优化是国际象棋程序恕我直言的关注点。