n 位 bitset 执行依次位运算的复杂度可视为 n / 32,效率较高。

  • 位运算操作符

~s, &, |, ^, >>, <<, ==, !=

  • [ ] 操作符
  • count返回有多少位为 1。
  • any / none

若 s 所有位都为 0,则 s.any() 返回 false,s.none() 返回 true。

若 s 至少一位为 1,则 s.any() 返回 true,s.none() 返回 false。

  • set / reset / flip

s.set() 把 s 所有位变为 1。

s.set(k, v) 把 s 的第 k 位改为 v,即 s[k] = v。

s.reset() 把 s 所有位变为 0。

s.reset(k) 把 s 的第 k 位改为 0,即 s[k] = 0。

s.flip() 把 s 的所有位取反,即 s = ~s。

s.flip(k) 把 s 的第 k 位取反,即 s[k] ^= 1。

posted on 2022-07-10 13:43  我疯故我在  阅读(203)  评论(0编辑  收藏  举报