在手写的地方使用 bitset 是否有任何性能损失/增益?
如何在运行时使用位集构建以下内容
- 将 2 到 5 之间的所有位设为零,即
11110011
。
最佳答案
黄金法则:
不要过早优化!
在 99% 的情况下,Bitset 都足够快,足够,并且具有成为通用概念的优势,因此它更具可读性,并且不易出现实现错误。不要简单地假设您的代码显然需要提高速度;使用 bitset 编写代码,分析您的应用程序,然后查看是否:
- 它已经够快了;和
- 如果它不够快,它是否真的将大部分时间都花在了位运算上?
根据 80-20 法则,让其他一些代码运行得更快,您可能会获得更大的返回。嘿,如果事实证明你确实需要提高位旋转速度,至少你有一些不错的基线数字可以使用,以表明你的解决方案确实比默认的更快(无论如何你都需要如果您想优化性能)。
关于c++ - 使用 bitset 代替手写位操作代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234762/