指向位集数组
Pointing to array of bitsets
本文关键字:数组 更新时间:2023-10-16
我想知道以下结构是否可行:
typedef std::bitset<4> BIT4;
BIT4* x=new BIT4[3];
BIT4* y=new BIT4[5];
我担心的是:
(1) BIT4的阵列是否为合法结构?
(2) 如果是,指针将如何处理这些大小为 3 和 5 的数组? 这些数组的最后一个元素似乎占用 1/2 字节,另一半只是丢失了,我们从新字节开始下一个数组还是它是如何工作的?
感谢您的帮助!
据我了解,您要做的是
对名为 x 的数组中的 3 个元素使用 12 位
对名为 y 的数组中的 5 个元素使用 20 位
这是错误的,因为您最终将使用:
- x 为 3 字节
- 5 字节表示 y
如果你想实现你想要的,你需要这样做:
std::bitset<4*3> x; // this will occupy 12 + 4 Padding Bits = 2 bytes
std::bitset<4*5> y; // this will occupy 20 + 4 Padding Bits = 3 bytes
当然,如果需要,您可以动态分配它。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '