Поделиться через


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))

один раз для каждого N в диапазоне [0, _Last - _First), строго увеличений ценности N начиная с меньшими значениями. Если _Dest и _First определяют области хранилища, _Dest не должно находиться в диапазоне от [_First, _Last).

Требования

Заголовок: <algorithm>

Пространство имен: std

См. также

Ссылки

Библиотека стандартных шаблонов