C中的bitset大小是多少

我想知道bitset实际上如何分配内存.我从一些博客中读到,它占用了内存.但是当我运行以下代码时:

   bitset<3> bits = 001;
   cout<<sizeof(bits);

我得到输出为4.它背后的解释是什么?
还有一种在C中以位为单位分配空间的方法吗?

解决方法:

您可以将sizeof(bitset< N>)近似为:

>如果内部表示是32位(如32位系统上的无符号),则为4 *((N 31)/ 32)
>如果内部表示是64位(如64位系统上的无符号长),则为8 *((N 63)/ 64)

似乎第一个是真的:4 *((3 31)/ 32)是4

上一篇:[考试反思]1010csp-s模拟测试66:依旧


下一篇:C中的位集,关于连续添加