如何在 C++ 中创建一个连续的 bool 向量?

How to make a contiguous vector of bools in C++?

如何在 C++ 中制作 bool 个数量的连续向量?我读了很多关于使用 std::vector<bool> 的警告,我想将掩码存储到 std::vector<double>.

为了使我的目的更明确一些,我想对 std::vector<double>bool 向量中为真的那些元素应用统计信息。为了以最佳性能做到这一点,我希望矢量是连续的。

使用std::bitset class 模拟布尔元素数组,但针对 space 分配进行了优化 引用自:http://www.cplusplus.com/reference/bitset/bitset/

您需要了解人们认为 std::vector<bool> 有问题的具体问题是什么,因为它们不一定适用于您的情况。其中最重要的可能是它不一定是连续的。这里 contigous 可能用词不当。为整个向量分配的内存可能仍然是连续的块,但是,&vec[0] + i 将与 &vec[i] 不同。

但是,许多其他 std::vector 特性仍然存在 - 例如,它仍然提供恒定时间随机访问。

底线 - 不要只是害怕,而是要了解其含义。