Cpp-reference显示来自(实验)范围 TS 的以下函数模板(以及其他):
template< ranges::InputIterator I, ranges::Sentinel<I> S,
class Proj = ranges::identity,
ranges::IndirectUnaryPredicate<ranges::projected<I, Proj>> Pred >
bool all_of( I first, S last, Pred pred, Proj proj = Proj{} );
模板参数Proj
与IndirectUnaryPredicate
结合使用可以做什么?
最佳答案
这是一个投影。您可以使用它来“投影”范围的元素,然后再将它们传递给谓词。例如,当您要将谓词应用于像 std::pair
这样的复杂数据类型时,它很有用。 ,我们要将谓词应用于 std::pair::second
.
all_of(range_of_std_pairs, pred, &pair_t::second);
使用谓词 pred
检查一系列 std::pairs在该对的第二个元素上。
关于c++ - TS 范围内的类模板参数 Proj 和类模板 IndirectUnaryPredicate 的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49218356/