有没有办法在C ++中将布尔值用作位图?

问题描述

|                                                                                                                       

解决方法

您是否可能会想到诸如“ 0”之类的东西?   位集是一种特殊的容器类,旨在存储位(只有两个可能值的元素:0或1,
true
false
,...)。      该类非常类似于常规数组,但是针对空间分配进行了优化:每个元素仅占用一位(这比C ++中最小的元素类型(三)少八倍)。      每个元素(每个位)都可以单独访问:例如,对于名为
mybitset
的给定位集,表达式
mybitset[3]
访问其第四位,就像常规数组访问其元素一样。 更新资料 在您的代码示例中,您正在使用(或滥用)以下事实:布尔型实例实际上表示为至少1个字节的整数类型值,因此大小为8位(标准可能对此进行了更精确的定义)。 因此,在实践中,您可以对
bool
值进行位翻转,但我敢打赌,结果是不确定的。即使不是,它也是非常不寻常的,因此很难被他人理解和维护。因此,您最好将标准
int
用于此目的。