确定包含 boolean 值(通常优化为位数组)的 vector 是否仅包含真值的最快方法是什么?对于小 vector ,我认为将 vector 与另一个仅存储真实值的 vector 进行比较可能不是一个坏主意(假设我们知道两个 vector 的大小)。
最佳答案
给定const vector<bool> foo(13)
使用 find
:
cout << (find(foo.begin(), foo.end(), false) == foo.end()) << endl;
cout << none_of(cbegin(foo), cend(foo), logical_not<bool>()) << endl;
或者,如果您知道您的 vector
编译时的大小你可以使用 bitset
'一个 all
方法:
bitset<13> foo;
cout << foo.all() << endl;
关于c++ - 检查 std::vector<bool> 是否仅由真值组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37842178/