这是C++标准库remove
代码中的代码.为什么不平等测试if (!(*first == val))
而不是if (*first != val)
?
template <class ForwardIterator, class T>
ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& val)
{
ForwardIterator result = first;
while (first!=last) {
if (!(*first == val)) {
*result = *first;
++result;
}
++first;
}
return result;
}
Run Code Online (Sandbox Code Playgroud) c++ ×1