更人类的手写 bitset

· · 科技·工程

如题,优点是可变长,且提供了 my_bitset::slice 类,支持通过 my_bitset::get_range(l, r) 切出 bitset 中的一个区间进行操作。

接口,命名感觉很清晰,应该都能看懂。

实现,需要注意的是 my_bitset::find_next(i) 函数找的是 \ge i 的下一位(my_bitset::find_prev(i) 同理),与 std::bitset::_Find_next(i) 不一样。

缺点是跑的很慢,测了一个 LCS 比一般的手写慢了约 1.3 倍。

没有经过充分的正确性验证,如果大家找到了 bug 欢迎评论指出。