在初始化时定义bitset大小?

Mar*_*aux 23 c++ bitset

我想在C++中做一个bitset.我做了一些研究.我找到的所有例子都是这样的:

bitset<6> myBitset;
// do something with it
Run Code Online (Sandbox Code Playgroud)

但是当我在我的类中定义变量时,我不知道bitset的大小:

#include <bitset>
class Test
{
public:
     std::bitset *myBitset;
}
Run Code Online (Sandbox Code Playgroud)

这不会编译......

像这样初始化也不起作用:

int size = getDependentSizeForBitset();
myBitset = new bitset<size>();
Run Code Online (Sandbox Code Playgroud)

jal*_*alf 23

Boost有dynamic_bitset你可以使用的.

或者,您可以使用a vector<bool>,(不幸的是)专门用作bitset.这会引起很多混乱,一般来说被认为是个坏主意.但这就是它的工作方式,所以如果这就是你所需要的,你可能会使用它,我想.

  • +1。遗憾的是,vector 具有这种专业化,而不仅仅是一个单独的类。它并没有让供应商更容易将其作为专业化来实施:只是看起来非常愚蠢。 (3认同)