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

标签 c++ stl bit-manipulation bit bitset

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

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

  • 将 2 到 5 之间的所有位设为零,即 11110011

最佳答案

黄金法则:

不要过早优化!

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

  1. 它已经够快了;和
  2. 如果它不够快,它是否真的将大部分时间都花在了位运算上?

根据 80-20 法则,让其他一些代码运行得更快,您可能会获得更大的返回。嘿,如果事实证明你确实需要提高位旋转速度,至少你有一些不错的基线数字可以使用,以表明你的解决方案确实比默认的更快(无论如何你都需要如果您想优化性能)。

关于c++ - 使用 bitset 代替手写位操作代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234762/

相关文章:

c++ - 编译错误

从新位置调用函数时出现 C++ 段错误

c++ - WebSocket,解码数据帧(c++)

c++ - 使用构造函数初始化 STL 映射

c++ - 在 C++ 中将文本文件插入 std::string 的数组/集合的最佳方法是什么

c++ - vector 赋值问题

c++ - 如果类型为 noexcept,C++ 11 STL 中的哪些算法和容器可以运行得更快?

c++ - 更快的位读取?

javascript - 本函数中JavaScript位运算符的解释

random - 来自掩码的均匀随机位