copy_if를 적절히 구현해 사용하자

STL에는 여러가지 copy 알고리즘을 제공하지만 copy_if 는 존재하지 않는다. 즉 원하는 것만을 복사를 하는 알고리즘은 직접 구현해야 한다.


template< typename IIter
typename OIter,
typename Predicate>
OIter copy_if(IIterbegin,
IIter end,
OIter destBegin,
Predicate p)
{
while(begin != end)
{
if( p(*begin) ) *destBegin++ = *begin;
++begin;
}
return destBegin;
}

대략 이런 코드로 구현할수 있다고 한다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다