可变大小的bitset

Jac*_*row 12 c++ bitset data-structures

我在数组上练习一个问题,我必须找到独特的元素.现在我的逻辑是找到数组中的max元素并为其定义bitset.但问题是bitset需要一个恒定的值,所以如何克服这个,下面是我的一些问题:

a)我可以用任何机会定义一个可变大小的bitset吗?
b)若没有,那么什么是用最好的方法vector<bool>还是vector<char>
c)我知道boost有一个动态bitset,但是当我这样做学习时,我想知道其他方法.

tem*_*def 14

std::bitset<N>模板需要事先固定的大小.这std::vector<bool>是C++标准提供可变长度位向量的方式,它提供类似于可以增长和缩小的位集的功能.

至于是否是好还是坏使用vector<char>vector<bool>:该vector<bool>是实现这一目标的一个更直接的方式.我会从使用它开始,然后切换到vector<char>性能是不可接受的.一般来说,最好先尝试编写最干净,最直接的实现,然后再进行优化.

希望这可以帮助!

  • @Himank-这是一个更有力的声明-`std::bitset` *只能在静态已知大小时使用。 (2认同)