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

Standard algorithms any_of(), all_of() and none_of() applied on empty ranges

本文关键字:of none 应用于 范围 all 算法 标准 any      更新时间:2023-10-16

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

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

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

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

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

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

等。

模式非常简单:

  • 如果你检查是否存在(∃x:P(x)),你至少需要一个元素。Existential_quantification_The_empty_set
  • 如果你检查普遍性(∀x:P(x)),那么空集就可以了。Universal_quantification_The_empty_set

这与实现无关,标准非常明确它们应该返回什么

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

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

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