如何在 C++ 中创建一个大小为 1 位的元素数组
how to create an array of elements with 1 bit in size in c++
在c/c++中,我们可以在内存中定义一个1位的变量:like unsigned char value : 1
;
有没有办法声明一个 1 位元素的数组?就像下面的 sudo 代码:
unsigned char : 1 data[10];
问题是在大多数实现中,1 位变量仍将占用 1 个字节的内存,因为这是内存寻址的方式。但是,如果您有大量这样的值,那么您可以解决这个问题。一种这样的解决方案是 std::bitset
。你可以这样制作:
#include <bitset>
std::bitset<64> data;
您可以使用 set
、reset
和 flip
操作(将其设置为 1、0 或切换它)来操作位。您可以使用 []
访问位,例如
if (data[5]) { ...
查看一个很好的示例 here。
在c/c++中,我们可以在内存中定义一个1位的变量:like unsigned char value : 1
;
有没有办法声明一个 1 位元素的数组?就像下面的 sudo 代码:
unsigned char : 1 data[10];
问题是在大多数实现中,1 位变量仍将占用 1 个字节的内存,因为这是内存寻址的方式。但是,如果您有大量这样的值,那么您可以解决这个问题。一种这样的解决方案是 std::bitset
。你可以这样制作:
#include <bitset>
std::bitset<64> data;
您可以使用 set
、reset
和 flip
操作(将其设置为 1、0 或切换它)来操作位。您可以使用 []
访问位,例如
if (data[5]) { ...
查看一个很好的示例 here。