Bool在元组和向量中的连接?

时间:2012-10-03 12:35:55

标签: c++ binary boolean

对于写/读文件,我使用元组和向量进行一些低级/二进制操作。 当我执行std::vector<bool> v(8)std::tuple<bool, bool, bool, bool, bool, bool...>时,我是否保证不连接布尔值? (因此向量和元组的权重至少为n个字节(其中n是布尔数)。

2 个答案:

答案 0 :(得分:1)

实现定义std::vector<bool>是否是位打包的。它的接口没有提供任何直接访问bool值的方法,因此试图直接访问底层数组,你肯定会在某些时候被烧毁。

std::tuplestd::pair的概括。因此std::tuple<bool, bool, bool>相当于struct SomeStruct { bool a, b, c; };,换句话说,bool值不会被打包。

答案 1 :(得分:-1)

“矢量专精化:矢量&lt; bool&gt; 向量类模板具有bool类型的特殊模板特化。

提供此专业化以优化空间分配:在此模板专业化中,每个元素仅占用一位......“引自here