据我所知,Bitsets无法动态分配,因为它们基于模板参数。但是为什么bitset以这种方式实现?
由于
答案 0 :(得分:2)
这样做是为了确保位集的特征尽可能接近未定义的整数(否则广泛用于表示位集)。其中一个负责大小为模板参数的要求是没有隐式动态内存分配。
对于动态大小比其他特征更重要的情况,可以使用boost dynamic_bitset。
答案 1 :(得分:1)
效率?因为这是一个常见的用例?如果您想要动态位集,请考虑vector<bool>
。它甚至还定义了一些位操作。但请先阅读this。