最佳答案
这是 C++标准程式库代码中的代码,为什么不等式被测试为 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;
}