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