如何在 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
特性仍然存在 - 例如,它仍然提供恒定时间随机访问。
底线 - 不要只是害怕,而是要了解其含义。
如何在 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
特性仍然存在 - 例如,它仍然提供恒定时间随机访问。
底线 - 不要只是害怕,而是要了解其含义。