我想将位存储在数组中(如结构)。所以我可以遵循以下两种方法中的任何一种
方法 1 (AN 1)
struct BIT
{
int data : 1
};
int main()
{
BIT a[100];
return 0;
}
方法 2 (AN 2)
int main()
{
std::bitset<100> BITS;
return 0;
}
为什么有人更喜欢 AN 2 而不是 AN 1?
最佳答案
因为接近 nr。 2 实际上使用 100 位存储,加上一些非常小的(恒定)开销,而 nr. 1 通常每个 Bit
结构使用四个字节的存储空间。通常,根据 C++ 标准,struct
至少有一个字节大。
#include <bitset>
#include <iostream>
struct Bit { int data : 1; };
int main()
{
Bit a[100];
std::bitset<100> b;
std::cout << sizeof(a) << "\n";
std::cout << sizeof(b) << "\n";
}
打印
400
16
除此之外,bitset
用许多有用的操作将你的位数组包装在一个很好的对象表示中。
关于c++ - 位域与位集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3998091/