标准算法 any_of()、all_of() 和 none_of() 应用于空范围
Standard algorithms any_of(), all_of() and none_of() applied on empty ranges
我有一个与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) 是真的,否则就是真的。
相关文章:
- Usages of std::move
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 使用 [] 运算符时"binding reference of type discards qualifiers"
- 如何处理 c++ 中类实现中的"invalid use of non-static data member"?
- 具有变量Number of Arguments的std::函数的矢量
- Capacity of a deque
- Deprecation of _writeBarrier()
- constexpr begin of a std::array
- 如何调整 std::vector of Eigen::MatrixXd 的大小
- C++ "error: invalid use of void expression"
- 我看到"use of undeclared identifier"错误,有人可以告诉我如何解决它吗?
- 赛通"Cannot take address of memoryview slice"
- C++ Version Of Double.longBitsToDouble
- 收到错误"invalid use of non-static data member 'stu::n' "
- C++ Usage of AsyncCallback
- 错误:"Left of getValue must have class/struct/union"
- Centos7 g++ "to_string is not in a member of std"
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- 传递 std::vector of std::shared_ptr,而不是更新对象
- C++/SDL "initial value of reference to a non-const must be an lvalue"