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


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 пространство имен:

См. также

Ссылки

Стандартная библиотека шаблонов