gpt4 book ai didi

c++ - 为什么 std::bitset<8> 是 4 个字节大?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:30 25 4
gpt4 key购买 nike

似乎对于 std::bitset<1 to 32>,大小设置为 4 个字节。对于 33 到 64 的大小,它直接跳到 8 个字节。不会有任何开销,因为 std::bitset<32> 是偶数 4 个字节。

我可以看到在处理位时对齐到字节长度,但为什么位集需要对齐到字长,尤其是对于最有可能在内存预算紧张的情况下使用的容器?

这是在 VS2010 下。

最佳答案

最可能的解释是 bitset 使用整数个机器字来存储数组。

这可能是出于内存带宽的原因:读/写在字边界对齐的字通常相对便宜。另一方面,读取(尤其是写入!)任意对齐的字节在某些架构上可能代价高昂。

由于我们讨论的是每个 bitset 几个字节的固定大小惩罚,这听起来像是通用库的合理权衡。

关于c++ - 为什么 std::bitset<8> 是 4 个字节大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7511355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com