1

在 C++ 中,位集实际上是一组布尔值吗?这不会破坏使用 BitSet 的目的,因为 bool 是 32 位(我认为......)?

4

2 回答 2

8

它们代表's的集合bool,但这些值实际上是作为位存储在unsigned long.

a 的大小bool不需要任何位数, a 也不需要unsigned long。(尽管任何数据类型的最小位数是 8,对于 anunsigned long它必须至少为 32。)

于 2010-04-29T21:59:19.220 回答
6

不,std::bitsets 实际上不是布尔值,它们实际上是位集。谁告诉你它们是布尔值?

您是否对有关 的争议感到困惑std::vector<bool>?顺便说一句,这是相反的问题,因为它看起来像一组布尔值,但实际上是一个位集。

于 2010-04-29T22:00:15.743 回答