我想知道 bitset 是如何实际分配内存的。我从一些博客中读到它会占用内存。但是,当我运行以下代码时:
bitset<3> bits = 001;
cout<<sizeof(bits);
我得到的输出为 4。它背后的解释是什么?
还有一种方法可以在 C++ 中以位为单位分配空间吗?
最佳答案
您可以近似 sizeof(bitset<N>)
如:
- 如果内部表示是 32 位(如 32 位系统上的无符号),则为
4 * ((N + 31) / 32)
- 如果内部表示是 64 位(如 64 位系统上的 unsigned long),则为
8 * ((N + 63) / 64)
看来第一个是真的:4 * ((3 + 31) / 32)
是 4
关于c++ - C++中bitset的大小是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459563/