向量<bool>上的按位运算

Mat*_*Mat 17 c++ bitwise-operators bitvector

什么是执行按位操作的最佳方法vector<bool>

据我所知,vector<bool>是一个每布尔使用一位的特化.我选择vector<bool>了节省内存的原因.我知道存在一些问题vector<bool>但是对于我的需要它是合适的.

现在 - 对整个这样的向量进行逐位运算的最高效方法是什么?

如果我在for循环中读取并读出每个bool并将其存储回来,我理解它的方式是在内部执行更多操作以访问实际值.

谢谢!

Aru*_*run 10

如果在编译时固定位数,那么使用起来会好得多 std::bitset

如果没有,(即比特数在运行时变化),那么你应该看到并且可以使用boost::dynamic_bitset)

在这两者中,完成所有按位操作非常容易.