6.3w+
社区成员
template<typename _InputIterator, typename _OutputIterator,
typename _Predicate>
_OutputIterator
remove_copy_if(_InputIterator __first, _InputIterator __last,
_OutputIterator __result, _Predicate __pred)
{
for ( ; __first != __last; ++__first)
if (!__pred(*__first))
{
*__result = *__first;
++__result;
}
return __result;
}
template<typename _ForwardIterator, typename _Predicate>
_ForwardIterator
remove_if(_ForwardIterator __first, _ForwardIterator __last,
_Predicate __pred)
{
__first = std::find_if(__first, __last, __pred);
_ForwardIterator __i = __first;
return __first == __last ? __first
: std::remove_copy_if(++__i, __last,
__first, __pred);
}