template<typename _It, typename _T>
inline _It remove(_It beg, _It end, const _T& val)
{
beg = find(beg, end, val);
if(beg == end)
return end;
else {
_It target = beg;
++beg;
for( ; beg != end; ++beg)
if(val != *beg) {
*target = *beg;
++target;
}
return target;
}
}
End of Listing