【发布时间】:2013-02-28 11:50:03
【问题描述】:
是否有编译器专家能够评论布尔值的有效使用?具体来说,编译器是否能够优化 std::vector<boolean> 以使用最少的内存?是否有等效的数据结构?
过去,有些语言的编译器可以将布尔数组压缩为每个布尔值仅一位的表示形式。也许对 C++ 来说最好的方法是使用 std::vector<char> 来存储布尔值以最小化内存使用?
这里的用例将存储数亿个布尔值,其中单个字节将节省大量空间,每个值和单个位超过 4 个或更多字节,甚至更多。
【问题讨论】:
-
vector<bool>很奇怪(至少与其他类型的向量相比),但它是vector的特化,因此被区别对待。
标签: c++ memory optimization compiler-construction storage