使用bitset代替使用手写位操作代码?

yes*_*aaj 0 c++ stl bit-manipulation bit bitset

在手写的位置使用bitset是否有任何性能损失/增益?

如何在运行时使用bitset构建以下内容

  • 使所有2到5之间的位为零,即11110011.

And*_*yle 6

黄金法则:

不要过早优化!

Bitset将在99%的情况下足够快,并且具有作为常见概念的优点,使得它更具可读性,并且更不容易出现实现错误.不要简单地假设您的代码显然需要提高速度; 使用bitset编写代码,分析您的应用程序,并查看是否:

  1. 它的速度足够快; 和
  2. 如果它不够快,它是否真的花费大部分时间进行位操作?

根据80-20规则,你可能会获得更高的回报,使其他代码更快.嘿,如果事实证明你确实需要提高比特速度,至少你有一些不错的基线数据来表明你的解决方案确实比默认更快(你还需要它)如果你想优化性能).