C ++中的位向量究竟是什么?

时间:2015-07-29 09:27:37

标签: c++

所以,我正在阅读Cracking the Coding Interview:5th Edition中的一个问题,它说它实现了一个40亿位的位向量。它将位向量定义为一个数组,通过使用一个int数组紧凑地存储布尔值。每个int存储32位序列或布尔值。我在上面的定义中有点困惑。有人能解释一下上述陈述究竟是什么意思吗?

标记为重复的问题,我无法理解,因为它们没有相关的例子。第二个答案确实有一个例子,但它不是真的可以理解。如果你们中的任何人都可以添加一个例子,那将是很好的,尽管只是一个小值。谢谢!

1 个答案:

答案 0 :(得分:0)

bool类型至少为1个字节。这意味着它至少是8位。 在'int'类型中,在32位系统上,它是32位。

如果使用int类型,那么您有4个字节的32个布尔值bool,而不是最少32个字节。

int中,您可以通过基本位操作存储32个布尔值:&|~