我有一个std::vector<bool>
实例(foo
,说),我需要写一个返回true
如果所有元素都true
功能。为什么的std :: min_element和公司没有专门针对性病::矢量<bool>
我用
return *std::min_element(foo.begin(), foo.end());
实现这一目标,但是这已经让我思考:你知道的最小元素false
,如果容器包含至少一个false
值。换句话说,你不需要遍历整个容器到end()
,这意味着专业化std::min_element
是适当的,就像std::vector<bool>
专业化被认为是适当的。
我错过了什么?或者这会被视为过早优化?无论如何,一个好的编译器可能会把它整理出来。
这似乎更适合['std :: all_of'](http://en.cppreference.com/w/cpp/algorithm/all_any_none_of)。 –
为什么不使用bitset? –
为什么不使用内置短路的'std :: any_of'? – NathanOliver