标准算法any_of(),all_of()和none_of()应用于空范围

时间:2014-11-13 22:39:02

标签: c++ algorithm

我有一个与stl算法有关的问题。

来自http://www.cplusplus.com/reference/algorithm/我看到any_of()all_of()none_of()在应用于空范围时具有不同的返回值,但似乎只是它们的实现的结果

您认为这些算法的正确返回值是什么?集合论是否回答了这些问题?

2 个答案:

答案 0 :(得分:6)

你只是解释他们的名字。使用常识。那就是:

any_of范围内的任何元素是否满足条件?为此,您至少需要一个匹配元素。

all_of范围内的所有元素是否满足条件?如果没有元素,则所有元素都符合标准。

模式非常简单:

答案 1 :(得分:1)

这不是关于实施,标准非常清楚他们应该返回什么

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf

您可以在第846页查看any_of,例如

返回:如果[first,last]为空,或者如果在[first,last]范围内没有迭代器i,则返回false pred(* i)是真的,否则是真的。