如何解决有没有办法在C ++中将布尔值用作位图?
|解决方法
您是否可能会想到诸如“ 0”之类的东西?
位集是一种特殊的容器类,旨在存储位(只有两个可能值的元素:0或1,
true
或false
,...)。
该类非常类似于常规数组,但是针对空间分配进行了优化:每个元素仅占用一位(这比C ++中最小的元素类型(三)少八倍)。
每个元素(每个位)都可以单独访问:例如,对于名为mybitset
的给定位集,表达式mybitset[3]
访问其第四位,就像常规数组访问其元素一样。
更新资料
在您的代码示例中,您正在使用(或滥用)以下事实:布尔型实例实际上表示为至少1个字节的整数类型值,因此大小为8位(标准可能对此进行了更精确的定义)。
因此,在实践中,您可以对bool
值进行位翻转,但我敢打赌,结果是不确定的。即使不是,它也是非常不寻常的,因此很难被他人理解和维护。因此,您最好将标准int
用于此目的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。