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