C++ 具名要求: Predicate

来自cppreference.com
< cpp‎ | named req
 
 
 

谓词 (Predicate) 要求描述可调用 (Callable) 对象返回可作为 bool 测试的值。

谓词 (Predicate) 常用于接收输入数据(单独的对象/容器)和谓词的算法,然后在进一步行动时得到调用。 C++ 标准库中的一些谓词使用示例是:

  • std::all_ofstd::any_ofstd::none_of 接收元素范围和谓词为输入。在每个单独的输入元素上调用谓词,并且若谓词分别对全部/任一/无元素返回 true 则返回 true 。
  • std::find_if 接受元素序列和谓词。返回序列中的首个谓词对其返回的 true 的元素。

上面给出的算法设施描述是简陋的,并且有意地简要解释谓词 (Predicate) 。对于详细信息可查阅单独的页面。

换言之,若算法接收谓词 (Predicate) pred 和迭代器 first ,则它应该能经由类似 if(pred(*first)) {...} 的构造,测试迭代器 first 所指向的类型。

函数对象 pred 不应当通过解引用的迭代器应用任何非 const 函数。此函数对象可以是指向函数的指针或拥有适合的函数调用运算符的类型的对象。

[编辑] 要求