为什么通过模板参数实现位集

时间:2012-11-03 10:50:03

标签: c++ templates stl bitset

据我所知,Bitsets无法动态分配,因为它们基于模板参数。但是为什么bitset以这种方式实现?

由于

2 个答案:

答案 0 :(得分:2)

这样做是为了确保位集的特征尽可能接近未定义的整数(否则广泛用于表示位集)。其中一个负责大小为模板参数的要求是没有隐式动态内存分配。

对于动态大小比其他特征更重要的情况,可以使用boost dynamic_bitset

答案 1 :(得分:1)

效率?因为这是一个常见的用例?如果您想要动态位集,请考虑vector<bool>。它甚至还定义了一些位操作。但请先阅读this