C++ 具名要求:谓词 (Predicate)
谓词 (Predicate) 要求描述了返回可作为 bool 测试的值的可调用 (Callable) 体。
谓词 (Predicate) 常与接收输入数据(单独的对象/容器)和谓词的算法一起使用,它会针对输入数据进行调用以决定进一步的动作。C++ 标准库中的一些使用谓词的例子有:
- std::all_of、std::any_of、std::none_of 接收一组元素和一个谓词为其输入。在每个单独的输入元素上调用谓词,并且当谓词分别对全部/任一/无元素返回 true 时返回 true。
- std::find_if 接受元素的序列和一个谓词。返回序列中首个谓词对其返回 true 的元素。
上面给出的算法设施描述是简陋的,并且有意地简要解释谓词 (Predicate) 。对于详细信息可查阅各自的页面。
换言之,若算法接收一个谓词 (Predicate) pred
和一个迭代器 first
,则它应该能经由类似 if(pred(*first)) {...} 的构造,测试迭代器 first
所指向的类型。
函数对象 pred
不应当通过解引用的迭代器运用任何非 const 函数。此函数对象可以是函数指针,或者拥有适合的函数调用运算符的类型的对象。
要求
本节未完成 原因:更好地描述实际要求 |