Bitsets真的会沸腾吗?

cam*_*cam 1 c++ bitset

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

GMa*_*ckG 8

它们代表bools 的集合,但这些值实际上存储为一个位unsigned long.

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


Tyl*_*nry 6

不,std::bitsets实际上并不是bool,它们实际上是bitset.谁告诉你他们是布尔?

您是否可能对争议感到困惑std::vector<bool>?这是一个相反的问题,因为它看起来像一组bools,但实际上是一个bitset.

  • 更糟糕的是,正如我所听到的那样,std :: vector <bool>打破了std :: vector的通常规则是*故意* - 它是以这种方式编写的,作为如何编写std ::的专用实现的一个例子向量. (2认同)