检查vector <bool>中的所有值是否为真的最优雅方法是什么?</bool>

时间:2014-08-07 09:54:47

标签: c++ c++11 vector

这个问题类似于这个问题: What is the most elegant way to check if all values in a boolean array are true?

但是对于c ++中的vector<bool>

如何将all_of用于此目的(例如,我想检查范围之间的值,元素10到20),因此我无法使用beginend

2 个答案:

答案 0 :(得分:3)

如果要使用std::all_of,则只返回谓词函数中的值:

#include <vector>
#include <iostream>
#include <algorithm>


int main()
{
    std::vector< bool > v( 30, true );

    const bool all = std::all_of( std::begin(v)+10, std::begin(v)+20, []( const bool v){ return v; } );

    std::cout << all << std::endl;
}

答案 1 :(得分:2)

我只是尝试std::find(begin(v)+10, begin(v)+20, false) - 如果10到20之间的所有值均为begin(v)+20,则会返回true