2

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

4

1 回答 1

2

这是一个投影。在将范围的元素传递给谓词之前,您可以使用它来“投影”范围的元素。它很有用,例如,当您要将谓词应用于复杂数据类型std::pair时,让我们想将谓词应用于std::pair::second.

all_of(range_of_std_pairs, pred, &pair_t::second);

pred使用对的第二个元素上的谓词检查一系列 std::pairs 。

于 2018-03-11T09:57:10.317 回答