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。