copy_if

在范围元素,副本为指定条件 true 的元素。

template<class InputIterator, class OutputIterator, class BinaryPredicate>
   OutputIterator copy_if(
      InputIterator _First, 
      InputIterator _Last,
      OutputIterator _Dest,
      Predicate _Pred
    );

参数

  • _First
    指示范围开始。检查条件的输入迭代器。

  • _Last
    指示一个范围的末尾。输入迭代器。

  • _Dest
    指示复制的元素的输出目标的迭代器。

  • _Pred
    在范围中每个元素的测试条件。 一个用户定义的对象提供谓词函数此条件。 谓词采用一个参数并返回 true 或 false。

返回值

等于 _Dest 的输出用于迭代器实现条件的每个元素使用增加。 换言之,减去 _Dest 的返回值等于复制的元素的数目。

备注

模板函数计算

if (_Pred(*_First + N))

*_Dest++ = *(_First + N))

一次为范围 [0, _Last中的每个 N - 开始从最低值的 N 严格递增值的_First)。 如果 _Dest 和存储_Dest 的 _First 指定区域不在范围 [_First, _Last)。

要求

标头: <算法>

命名空间: std

请参见

参考

标准模板库